Skip to content

Commit fbdedfe

Browse files
committed
refactor: 기존 수동으로 세션 처리하는 로직 제거
1 parent 4cea62c commit fbdedfe

8 files changed

Lines changed: 9 additions & 30 deletions

File tree

DevLog/Data/Repository/AuthSessionRepositoryImpl.swift

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,33 @@ import Combine
99
import Foundation
1010

1111
final class AuthSessionRepositoryImpl: AuthSessionRepository {
12-
private let authService: AuthService
1312
private let userDefaultsStore: UserDefaultsStore
1413
private var cancellables = Set<AnyCancellable>()
14+
private let signInSubject: CurrentValueSubject<Bool, Never>
1515

1616
init(authService: AuthService, userDefaultsStore: UserDefaultsStore) {
17-
self.authService = authService
1817
self.userDefaultsStore = userDefaultsStore
19-
self.signIn = authService.uid != nil
18+
self.signInSubject = .init(authService.uid != nil)
2019

2120
authService.signedInPublisher
2221
.removeDuplicates()
2322
.receive(on: DispatchQueue.main)
2423
.sink { [weak self] signIn in
25-
self?.setSession(signIn)
24+
self?.applySession(signIn)
2625
}
2726
.store(in: &cancellables)
2827
}
2928

30-
@Published private var signIn: Bool = false
31-
3229
var signedInPublisher: AnyPublisher<Bool, Never> {
33-
$signIn.eraseToAnyPublisher()
30+
signInSubject.eraseToAnyPublisher()
3431
}
32+
}
3533

36-
func setSession(_ signedIn: Bool) {
37-
if !signedIn {
34+
private extension AuthSessionRepositoryImpl {
35+
func applySession(_ signedIn: Bool) {
36+
if signInSubject.value && !signedIn {
3837
userDefaultsStore.removeAll()
3938
}
40-
self.signIn = signedIn
39+
signInSubject.send(signedIn)
4140
}
4241
}

DevLog/Domain/Protocol/AuthSessionRepository.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,4 @@ import Combine
99

1010
protocol AuthSessionRepository {
1111
var signedInPublisher: AnyPublisher<Bool, Never> { get }
12-
func setSession(_ signedIn: Bool)
1312
}

DevLog/Domain/UseCase/Auth/Session/AuthSessionUseCase.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,4 @@ import Combine
99

1010
protocol AuthSessionUseCase {
1111
var signedInPublisher: AnyPublisher<Bool, Never> { get }
12-
func execute(_ signIn: Bool)
1312
}

DevLog/Domain/UseCase/Auth/Session/AuthSessionUseCaseImpl.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,4 @@ final class AuthSessionUseCaseImpl: AuthSessionUseCase {
1717
init(_ repository: AuthSessionRepository) {
1818
self.repository = repository
1919
}
20-
21-
func execute(_ signIn: Bool) {
22-
repository.setSession(signIn)
23-
}
2420
}

DevLog/Presentation/ViewModel/LoginViewModel.swift

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,7 @@ final class LoginViewModel: Store {
8787
do {
8888
defer { send(.setLoading(false)) }
8989
try await self.signInUseCase.execute(authProvider)
90-
send(.setLogined(true))
91-
sessionUseCase.execute(true)
9290
} catch {
93-
send(.setLogined(false))
94-
sessionUseCase.execute(false)
9591
if error.isSocialLoginCancelled { return }
9692
send(.setAlert(true))
9793
}
@@ -101,8 +97,6 @@ final class LoginViewModel: Store {
10197
do {
10298
defer { send(.setLoading(false)) }
10399
try await self.signOutUseCase.execute()
104-
send(.setLogined(false))
105-
sessionUseCase.execute(false)
106100
} catch {
107101
send(.setAlert(true))
108102
}

DevLog/Presentation/ViewModel/RootViewModel.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,6 @@ final class RootViewModel: Store {
110110
case .signOut:
111111
Task {
112112
try? await signOutUseCase.execute()
113-
send(.didLogined(false))
114-
sessionUseCase.execute(false)
115113
}
116114
}
117115
}

DevLog/Presentation/ViewModel/SettingViewModel.swift

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ final class SettingViewModel: Store {
4343
private(set) var state = State()
4444
private let deleteAuthuseCase: DeleteAuthUseCase
4545
private let signOutUseCase: SignOutUseCase
46-
private let sessionUseCase: AuthSessionUseCase
4746
private let observeSystemThemeUseCase: ObserveSystemThemeUseCase
4847
private let updateSystemThemeUseCase: UpdateSystemThemeUseCase
4948
private let loadingState = LoadingState()
@@ -56,13 +55,11 @@ final class SettingViewModel: Store {
5655
init(
5756
deleteAuthUseCase: DeleteAuthUseCase,
5857
signOutUseCase: SignOutUseCase,
59-
sessionUseCase: AuthSessionUseCase,
6058
observeSystemThemeUseCase: ObserveSystemThemeUseCase,
6159
updateSystemThemeUseCase: UpdateSystemThemeUseCase
6260
) {
6361
self.deleteAuthuseCase = deleteAuthUseCase
6462
self.signOutUseCase = signOutUseCase
65-
self.sessionUseCase = sessionUseCase
6663
self.observeSystemThemeUseCase = observeSystemThemeUseCase
6764
self.updateSystemThemeUseCase = updateSystemThemeUseCase
6865
setupThemeMonitoring()
@@ -111,7 +108,6 @@ final class SettingViewModel: Store {
111108
send(.setAlert(isPresented: false))
112109
defer { endLoading(.delayed) }
113110
try await deleteAuthuseCase.execute()
114-
sessionUseCase.execute(false)
115111
} catch {
116112
send(.setAlert(isPresented: true, type: .error))
117113
}
@@ -123,7 +119,6 @@ final class SettingViewModel: Store {
123119
send(.setAlert(isPresented: false))
124120
defer { endLoading(.delayed) }
125121
try await signOutUseCase.execute()
126-
sessionUseCase.execute(false)
127122
} catch {
128123
send(.setAlert(isPresented: true, type: .error))
129124
}

DevLog/UI/Profile/ProfileView.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ struct ProfileView: View {
9898
SettingView(viewModel: SettingViewModel(
9999
deleteAuthUseCase: container.resolve(DeleteAuthUseCase.self),
100100
signOutUseCase: container.resolve(SignOutUseCase.self),
101-
sessionUseCase: container.resolve(AuthSessionUseCase.self),
102101
observeSystemThemeUseCase: container.resolve(ObserveSystemThemeUseCase.self),
103102
updateSystemThemeUseCase: container.resolve(UpdateSystemThemeUseCase.self)
104103
))

0 commit comments

Comments
 (0)