6
6
// 2022 OPass.
7
7
//
8
8
9
+ import SwiftUI
9
10
import Foundation
10
11
import KeychainAccess
11
12
import OSLog
@@ -26,6 +27,7 @@ class EventAPIViewModel: ObservableObject {
26
27
self . eventLogo = eventLogo
27
28
self . saveData = saveData
28
29
self . eventAPITemporaryData = tmpData
30
+ self . _user_role = AppStorage ( wrappedValue: " nil " , " \( eventSettings. event_id) _user_role " )
29
31
}
30
32
31
33
var saveData : ( ) async -> Void
@@ -38,6 +40,7 @@ class EventAPIViewModel: ObservableObject {
38
40
@Published var eventAnnouncements : [ AnnouncementModel ] ? = nil
39
41
@Published var eventScenarioStatus : ScenarioStatusModel ? = nil
40
42
private var eventAPITemporaryData : CodableEventAPIVM ? = nil
43
+ @AppStorage var user_role : String
41
44
42
45
private let logger = Logger ( subsystem: " app.opass.ccip " , category: " EventAPI " )
43
46
private let keychain = Keychain ( service: " app.opass.ccip-token " ) //Service key value match App Bundle ID + "-token"
@@ -125,6 +128,7 @@ extension EventAPIViewModel {
125
128
DispatchQueue . main. async {
126
129
self . eventScenarioStatus = eventScenarioStatus
127
130
self . accessToken = token
131
+ self . user_role = eventScenarioStatus. role
128
132
Task { await self . saveData ( ) }
129
133
}
130
134
return true
@@ -149,6 +153,7 @@ extension EventAPIViewModel {
149
153
let eventScenarioStatus = try await APIRepo . load ( scenarioStatusFrom: fastpassFeature, token: token)
150
154
DispatchQueue . main. async {
151
155
self . eventScenarioStatus = eventScenarioStatus
156
+ self . user_role = eventScenarioStatus. role
152
157
Task { await self . saveData ( ) }
153
158
}
154
159
} catch APIRepo . LoadError . http403Forbidden {
@@ -159,6 +164,7 @@ extension EventAPIViewModel {
159
164
}
160
165
self . eventAPITemporaryData? . eventScenarioStatus = nil
161
166
DispatchQueue . main. async {
167
+ self . user_role = scenarioStatus. role
162
168
self . eventScenarioStatus = scenarioStatus
163
169
}
164
170
}
@@ -252,6 +258,7 @@ extension EventAPIViewModel {
252
258
if let scenarioStatus = eventScenarioStatus {
253
259
Constants . sendTag ( " \( scenarioStatus. event_id) \( scenarioStatus. role) " , value: " " )
254
260
self . eventScenarioStatus = nil
261
+ self . user_role = " nil "
255
262
}
256
263
self . accessToken = nil
257
264
}
0 commit comments