Commit
This commit is contained in:
@ -11,7 +11,7 @@ import Foundation
|
||||
final class ScheduleViewModel: ObservableObject {
|
||||
//MARK: Properties
|
||||
//Schedule
|
||||
@Published var weekSchedule: Table = Table(
|
||||
@Published var weekScheduleGroup: Table = Table(
|
||||
type: "",
|
||||
name: "",
|
||||
week: 0,
|
||||
@ -34,7 +34,17 @@ final class ScheduleViewModel: ObservableObject {
|
||||
//Groups
|
||||
@Published var groups: [Choice] = []
|
||||
//VPK
|
||||
@Published var vpk: [[String]] = []
|
||||
@Published var vpks: [[String]] = []
|
||||
@Published var vpkHTML: String = ""
|
||||
@Published var vpk: String = ""
|
||||
@Published var weekScheduleVPK: Table = Table(
|
||||
type: "",
|
||||
name: "",
|
||||
week: 0,
|
||||
group: "",
|
||||
table: [[]],
|
||||
link: ""
|
||||
)
|
||||
|
||||
|
||||
//MARK: Methods
|
||||
@ -56,10 +66,10 @@ final class ScheduleViewModel: ObservableObject {
|
||||
self.isNewGroup = true
|
||||
self.selectedDay = .init()
|
||||
}
|
||||
self.weekSchedule = schedule.table
|
||||
self.week = weekSchedule.week
|
||||
self.numOfGroup = weekSchedule.group
|
||||
self.classes = weekSchedule.table
|
||||
self.weekScheduleGroup = schedule.table
|
||||
self.week = weekScheduleGroup.week
|
||||
self.numOfGroup = weekScheduleGroup.group
|
||||
self.classes = weekScheduleGroup.table
|
||||
self.isFirstStartOffApp = false
|
||||
self.isShowingAlertForIncorrectGroup = false
|
||||
self.isLoading = false
|
||||
@ -84,6 +94,47 @@ final class ScheduleViewModel: ObservableObject {
|
||||
}
|
||||
}
|
||||
|
||||
func fetchWeekVPK(isOtherWeek: Bool = false, vpk: String? = "default") {
|
||||
isLoading = true
|
||||
Task {
|
||||
do {
|
||||
var tempVPKS: Schedule
|
||||
// В этот if мы заходим только если пользователь перелистывает недели и нам известы номер ВПК(в html формате) и номер недели, которая показывается пользователю
|
||||
if isOtherWeek && vpk != nil {
|
||||
tempVPKS = try await NetworkManager.shared.getScheduleForOtherWeek(self.week, self.vpkHTML)
|
||||
}
|
||||
// В else мы заходим в том случае, если не знаем номер недели, которую нужно отобразить и номер группы(в html формате)
|
||||
else {
|
||||
tempVPKS = try await NetworkManager.shared.getSchedule(vpk!)
|
||||
self.vpk = vpk!
|
||||
self.selectedDay = .init()
|
||||
}
|
||||
self.weekScheduleVPK = tempVPKS.table
|
||||
self.vpkHTML = weekScheduleVPK.group
|
||||
self.vpks = weekScheduleVPK.table
|
||||
print(self.vpk)
|
||||
self.isShowingAlertForIncorrectGroup = false
|
||||
self.isLoading = false
|
||||
self.errorInNetwork = .noError
|
||||
}
|
||||
catch {
|
||||
if let error = error as? NetworkError {
|
||||
switch (error) {
|
||||
case .invalidResponse:
|
||||
errorInNetwork = .invalidResponse
|
||||
case .invalidData:
|
||||
errorInNetwork = .invalidData
|
||||
self.isShowingAlertForIncorrectGroup = true
|
||||
default:
|
||||
print("Неизвестная ошибка: \(error)")
|
||||
}
|
||||
isLoading = false
|
||||
print("Есть ошибка: \(error)")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func fetchGroups(group: String) {
|
||||
Task {
|
||||
do {
|
||||
|
Reference in New Issue
Block a user