76 lines
1.6 KiB
Swift
76 lines
1.6 KiB
Swift
|
//
|
|||
|
// 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!
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|