// // Api.swift // comments // // Created by Эрнест Литвиненко on 11.03.2024. // import Foundation import Alamofire struct PostStruct: Decodable, Identifiable { var id: Int var userId: Int var title: String var body: String } struct CardProps: Decodable, Identifiable, Hashable{ var id: Int var name: String var amount: Float var lastDigits: String var color: String } struct FetchBalance: Decodable { var amount: String var currency: String } class Api { private let BASE_URL = "http://localhost:3000" func fetchPosts() async -> [PostStruct] { let result = await AF.request(BASE_URL + "/posts").serializingDecodable([PostStruct].self).result var data: [PostStruct] = [] do { try data = result.get() } catch { return [] } return data } func fetchCards() async -> [CardProps] { let result = await AF.request(BASE_URL + "/cards").serializingDecodable([CardProps].self).result var data: [CardProps] = [] do { try data = result.get() } catch { return [] } return data } func fetchBalance() async -> FetchBalance? { let result = await AF.request(BASE_URL + "/balance").serializingDecodable(FetchBalance.self).result var data: FetchBalance? = nil do { try data = result.get() } catch { return nil } return data! } }