Skip to content

Commit 6b1ca16

Browse files
committed
Let a session decide if is valid or not
1 parent 6311f2e commit 6b1ca16

File tree

5 files changed

+8
-10
lines changed

5 files changed

+8
-10
lines changed

ios-base/Common/Models/Session.swift

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ struct Session: Codable {
1515
var accessToken: String?
1616
var expiry: Date?
1717

18+
var isValid: Bool { [uid, accessToken, client].allSatisfy { $0 != nil } }
19+
1820
private enum CodingKeys: String, CodingKey {
1921
case uid
2022
case client

ios-base/Managers/SessionManager.swift

+2-6
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,7 @@ internal class SessionManager: CurrentUserSessionProvider {
3939
userDefaults.removeObject(forKey: "ios-base-session")
4040
}
4141

42-
var validSession: Bool {
43-
if let session = currentSession, let uid = session.uid,
44-
let tkn = session.accessToken, let client = session.client {
45-
return !uid.isEmpty && !tkn.isEmpty && !client.isEmpty
46-
}
47-
return false
42+
static var isSessionValid: Bool {
43+
currentSession?.isValid ?? false
4844
}
4945
}

ios-base/Navigators/AppNavigator.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import Foundation
1010

1111
internal class AppNavigator: BaseNavigator {
1212

13-
static let shared = AppNavigator(isLoggedIn: SessionManager.shared.validSession)
13+
static let shared = AppNavigator(isLoggedIn: SessionManager.shared.isSessionValid)
1414

1515
init(isLoggedIn: Bool) {
1616
let initialRoute: Route = isLoggedIn

ios-base/Networking/Services/AuthenticationServices.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,6 @@ internal class AuthenticationServices {
171171
UserDataManager.currentUser = user
172172
sessionManager.currentSession = Session(headers: headers)
173173

174-
return UserDataManager.currentUser != nil && sessionManager.validSession
174+
return UserDataManager.currentUser != nil && sessionManager.isSessionValid
175175
}
176176
}

ios-baseUnitTests/Services/UserServiceUnitTests.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class UserServiceUnitTests: XCTestCase {
7777
headers: unusableHeaders
7878
)
7979
XCTAssert(SessionManager.currentSession == nil)
80-
XCTAssertFalse(SessionManager.validSession)
80+
XCTAssertFalse(SessionManager.isSessionValid)
8181

8282
// Testing case where should be session but not valid
8383
let wrongSessionHeaders = [
@@ -91,6 +91,6 @@ class UserServiceUnitTests: XCTestCase {
9191
headers: wrongSessionHeaders
9292
)
9393
XCTAssert(SessionManager.currentSession != nil)
94-
XCTAssertFalse(SessionManager.validSession)
94+
XCTAssertFalse(SessionManager.isSessionValid)
9595
}
9696
}

0 commit comments

Comments
 (0)