IceCubesApp/Packages/Lists/Sources/Lists/Edit/ListEditViewModel.swift
Thomas Ricouard 7f6419ebae Swiftformat
2023-01-17 11:36:01 +01:00

39 lines
907 B
Swift

import Models
import Network
import SwiftUI
@MainActor
public class ListEditViewModel: ObservableObject {
let list: Models.List
var client: Client?
@Published var isLoadingAccounts: Bool = true
@Published var accounts: [Account] = []
init(list: Models.List) {
self.list = list
}
func fetchAccounts() async {
guard let client else { return }
isLoadingAccounts = true
do {
accounts = try await client.get(endpoint: Lists.accounts(listId: list.id))
isLoadingAccounts = false
} catch {
isLoadingAccounts = false
}
}
func delete(account: Account) async {
guard let client else { return }
do {
let response = try await client.delete(endpoint: Lists.updateAccounts(listId: list.id, accounts: [account.id]))
if response?.statusCode == 200 {
accounts.removeAll(where: { $0.id == account.id })
}
} catch {}
}
}