forked from AcaMate/AcaMate_iOS
49 lines
1.5 KiB
Swift
49 lines
1.5 KiB
Swift
//
|
|
// SelectAcademyViewModel.swift
|
|
// AcaMate
|
|
//
|
|
// Created by TAnine on 2/19/25.
|
|
//
|
|
|
|
import SwiftUI
|
|
import Combine
|
|
|
|
class SelectAcademyViewModel: ObservableObject {
|
|
private var cancellables: Set<AnyCancellable> = []
|
|
|
|
@Published var academyCode: String = ""
|
|
@Published var academyList: [AcademyName] = []
|
|
@Published var selectNum: Int = -1
|
|
|
|
func loadAcademy() {
|
|
@UserDefault(key: "token", defaultValue: "accToken") var token
|
|
@UserDefault(key: "refresh", defaultValue: "arefreshToken") var refresh
|
|
loadAPIData(url: "\(API_URL)",
|
|
path: "/api/v1/in/user/academy",
|
|
method: .get,
|
|
parameters: ["token": token, "refresh": refresh],
|
|
decodingType: APIResponse<[AcademyName]>.self)
|
|
.sink { completion in
|
|
switch completion {
|
|
case .failure(let error):
|
|
printLog("\(error)")
|
|
case .finished:
|
|
break
|
|
}
|
|
} receiveValue: { [weak self] response in
|
|
guard let self = self else {return}
|
|
guard let academyNames = response as? APIResponse<[AcademyName]> else {return}
|
|
guard let academyList = academyNames.data else { return }
|
|
self.academyList = academyList
|
|
}
|
|
.store(in: &cancellables)
|
|
}
|
|
|
|
func toggleSelection(for index: Int){
|
|
if selectNum == index {
|
|
selectNum = -1
|
|
} else {
|
|
selectNum = index
|
|
}}
|
|
}
|