mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-18 07:28:28 +02:00
Cleaned up various things, mostly removed unnecessary selfs, comments and bad formatting
This commit is contained in:
committed by
Stefan Ceriu
parent
c073dfd95d
commit
eac1401cc1
@@ -21,91 +21,63 @@ typealias UserSessionsOverviewViewModelType = StateStoreViewModel<UserSessionsOv
|
||||
UserSessionsOverviewViewAction>
|
||||
|
||||
class UserSessionsOverviewViewModel: UserSessionsOverviewViewModelType, UserSessionsOverviewViewModelProtocol {
|
||||
|
||||
// MARK: - Properties
|
||||
|
||||
// MARK: Private
|
||||
|
||||
private let userSessionsOverviewService: UserSessionsOverviewServiceProtocol
|
||||
|
||||
// MARK: Public
|
||||
|
||||
var completion: ((UserSessionsOverviewViewModelResult) -> Void)?
|
||||
|
||||
// MARK: - Setup
|
||||
|
||||
init(userSessionsOverviewService: UserSessionsOverviewServiceProtocol) {
|
||||
self.userSessionsOverviewService = userSessionsOverviewService
|
||||
|
||||
let initialViewState = UserSessionsOverviewViewState(unverifiedSessionsViewData: [], inactiveSessionsViewData: [], currentSessionViewData: nil, otherSessionsViewData: [])
|
||||
super.init(initialViewState: .init())
|
||||
|
||||
super.init(initialViewState: initialViewState)
|
||||
|
||||
self.updateViewState(with: userSessionsOverviewService.lastOverviewData)
|
||||
updateViewState(with: userSessionsOverviewService.lastOverviewData)
|
||||
}
|
||||
|
||||
// MARK: - Public
|
||||
|
||||
|
||||
override func process(viewAction: UserSessionsOverviewViewAction) {
|
||||
switch viewAction {
|
||||
case .viewAppeared:
|
||||
self.loadData()
|
||||
loadData()
|
||||
case .verifyCurrentSession:
|
||||
self.completion?(.verifyCurrentSession)
|
||||
completion?(.verifyCurrentSession)
|
||||
case .viewCurrentSessionDetails:
|
||||
guard let currentSessionInfo = userSessionsOverviewService.lastOverviewData.currentSessionInfo else {
|
||||
assertionFailure("currentSessionInfo should be present")
|
||||
return
|
||||
return
|
||||
}
|
||||
self.completion?(.showCurrentSessionOverview(sessionInfo: currentSessionInfo))
|
||||
completion?(.showCurrentSessionOverview(sessionInfo: currentSessionInfo))
|
||||
case .viewAllUnverifiedSessions:
|
||||
self.completion?(.showAllUnverifiedSessions)
|
||||
completion?(.showAllUnverifiedSessions)
|
||||
case .viewAllInactiveSessions:
|
||||
self.completion?(.showAllInactiveSessions)
|
||||
completion?(.showAllInactiveSessions)
|
||||
case .viewAllOtherSessions:
|
||||
self.completion?(.showAllOtherSessions)
|
||||
completion?(.showAllOtherSessions)
|
||||
case .tapUserSession(let sessionId):
|
||||
guard let sessionInfo = userSessionsOverviewService.getOtherSession(sessionId: sessionId) else {
|
||||
assertionFailure("missing session info")
|
||||
return
|
||||
}
|
||||
self.completion?(.showUserSessionOverview(sessionInfo: sessionInfo))
|
||||
completion?(.showUserSessionOverview(sessionInfo: sessionInfo))
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Private
|
||||
|
||||
private func updateViewState(with userSessionsViewData: UserSessionsOverviewData) {
|
||||
|
||||
let unverifiedSessionsViewData = self.userSessionListItemViewDataList(from: userSessionsViewData.unverifiedSessionsInfo)
|
||||
let inactiveSessionsViewData = self.userSessionListItemViewDataList(from: userSessionsViewData.inactiveSessionsInfo)
|
||||
|
||||
var currentSessionViewData: UserSessionCardViewData?
|
||||
|
||||
let otherSessionsViewData = self.userSessionListItemViewDataList(from: userSessionsViewData.otherSessionsInfo)
|
||||
|
||||
state.unverifiedSessionsViewData = userSessionsViewData.unverifiedSessionsInfo.asViewData()
|
||||
state.inactiveSessionsViewData = userSessionsViewData.inactiveSessionsInfo.asViewData()
|
||||
state.otherSessionsViewData = userSessionsViewData.otherSessionsInfo.asViewData()
|
||||
|
||||
if let currentSessionInfo = userSessionsViewData.currentSessionInfo {
|
||||
currentSessionViewData = UserSessionCardViewData(userSessionInfo: currentSessionInfo, isCurrentSessionDisplayMode: true)
|
||||
}
|
||||
|
||||
self.state.unverifiedSessionsViewData = unverifiedSessionsViewData
|
||||
self.state.inactiveSessionsViewData = inactiveSessionsViewData
|
||||
self.state.currentSessionViewData = currentSessionViewData
|
||||
self.state.otherSessionsViewData = otherSessionsViewData
|
||||
}
|
||||
|
||||
private func userSessionListItemViewDataList(from userSessionInfoList: [UserSessionInfo]) -> [UserSessionListItemViewData] {
|
||||
return userSessionInfoList.map {
|
||||
return UserSessionListItemViewData(userSessionInfo: $0)
|
||||
state.currentSessionViewData = UserSessionCardViewData(userSessionInfo: currentSessionInfo, isCurrentSessionDisplayMode: true)
|
||||
}
|
||||
}
|
||||
|
||||
private func loadData() {
|
||||
state.showLoadingIndicator = true
|
||||
|
||||
self.state.showLoadingIndicator = true
|
||||
|
||||
self.userSessionsOverviewService.fetchUserSessionsOverviewData { [weak self] result in
|
||||
userSessionsOverviewService.fetchUserSessionsOverviewData { [weak self] result in
|
||||
guard let self = self else {
|
||||
return
|
||||
}
|
||||
@@ -122,3 +94,9 @@ class UserSessionsOverviewViewModel: UserSessionsOverviewViewModelType, UserSess
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private extension Collection where Element == UserSessionInfo {
|
||||
func asViewData() -> [UserSessionListItemViewData] {
|
||||
map { UserSessionListItemViewData(userSessionInfo: $0) }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user