Yattee v2 rewrite

This commit is contained in:
Arkadiusz Fal
2026-02-08 18:31:16 +01:00
parent 20d0cfc0c7
commit 05f921d605
1043 changed files with 163875 additions and 68430 deletions

View File

@@ -0,0 +1,33 @@
//
// WebDAVClientFactory.swift
// Yattee
//
// Factory for creating WebDAVClient instances with appropriate SSL settings.
//
import Foundation
/// Factory for creating WebDAVClient instances based on media source SSL settings.
final class WebDAVClientFactory: Sendable {
private let sessionFactory: URLSessionFactory
init(sessionFactory: URLSessionFactory = .shared) {
self.sessionFactory = sessionFactory
}
/// Creates a WebDAVClient configured for the given media source's SSL requirements.
/// - Parameter source: The media source to create a client for.
/// - Returns: A WebDAVClient with appropriate SSL settings.
func createClient(for source: MediaSource) -> WebDAVClient {
let session = sessionFactory.session(allowInvalidCertificates: source.allowInvalidCertificates)
return WebDAVClient(session: session)
}
/// Creates a WebDAVClient with explicit SSL settings.
/// - Parameter allowInvalidCertificates: Whether to bypass SSL certificate validation.
/// - Returns: A WebDAVClient with the specified SSL settings.
func createClient(allowInvalidCertificates: Bool) -> WebDAVClient {
let session = sessionFactory.session(allowInvalidCertificates: allowInvalidCertificates)
return WebDAVClient(session: session)
}
}