- Add protocols for all UseCases and implement them in their respective classes - Add DefaultUseCaseFactory and MockUseCaseFactory for dependency injection - Implement all mock UseCases with dummy data - Start migration of view models and views to protocol-based UseCase injection (not all migrated yet) - Refactor previews and some initializers for easier testing - Move SectionHeader to Components, update server settings UI text - Add sample article.html for mock content
21 lines
762 B
Swift
21 lines
762 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)
|
|
KeychainHelper.shared.saveToken(token)
|
|
KeychainHelper.shared.saveEndpoint(endpoint)
|
|
print("token saved", KeychainHelper.shared.loadToken())
|
|
}
|
|
}
|