Impressia/Vernissage/CoreData/AccountDataHandler.swift

45 lines
1.2 KiB
Swift
Raw Normal View History

2022-12-31 16:31:05 +01:00
//
// https://mczachurski.dev
// Copyright © 2022 Marcin Czachurski and the repository contributors.
// Licensed under the MIT License.
//
import Foundation
class AccountDataHandler {
2023-01-05 11:55:20 +01:00
public static let shared = AccountDataHandler()
private init() { }
2022-12-31 16:31:05 +01:00
func getAccountsData() -> [AccountData] {
let context = CoreDataHandler.shared.container.viewContext
let fetchRequest = AccountData.fetchRequest()
do {
return try context.fetch(fetchRequest)
} catch {
print("Error during fetching accounts")
return []
}
}
2023-01-01 18:13:36 +01:00
func getCurrentAccountData() -> AccountData? {
let accounts = self.getAccountsData()
2023-01-05 11:55:20 +01:00
let defaultSettings = ApplicationSettingsHandler.shared.getDefaultSettings()
2023-01-01 18:13:36 +01:00
let currentAccount = accounts.first { accountData in
accountData.id == defaultSettings.currentAccount
}
if let currentAccount {
return currentAccount
}
return accounts.first
}
2022-12-31 16:31:05 +01:00
func createAccountDataEntity() -> AccountData {
let context = CoreDataHandler.shared.container.viewContext
return AccountData(context: context)
}
}