- Replace multiple boolean properties with single OfflineBookmarkSyncState enum - Add Use Case pattern for OfflineSyncManager with dependency injection - Simplify LocalBookmarksSyncView using state-driven UI with external bindings - Convert OfflineBookmarksViewModel to use @Observable instead of ObservableObject - Move credentials from Core Data to Keychain for better persistence - Implement comprehensive database migration for App Group containers - Add structured logging throughout sync operations and API calls Architecture improvements follow MVVM principles with clean separation of concerns.
18 lines
598 B
Swift
18 lines
598 B
Swift
import Foundation
|
|
|
|
protocol PSaveServerSettingsUseCase {
|
|
func execute(endpoint: String, username: String, password: String, token: String) async throws
|
|
}
|
|
|
|
class SaveServerSettingsUseCase: PSaveServerSettingsUseCase {
|
|
private let repository: PSettingsRepository
|
|
|
|
init(repository: PSettingsRepository) {
|
|
self.repository = repository
|
|
}
|
|
|
|
func execute(endpoint: String, username: String, password: String, token: String) async throws {
|
|
try await repository.saveServerSettings(endpoint: endpoint, username: username, password: password, token: token)
|
|
}
|
|
}
|