Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

πŸ”€ :: (#954, #955) λΆˆν•„μš” 둜직 제거 #956

Merged
merged 3 commits into from
Aug 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import UserDomainInterface
public protocol FruitDrawDependency: Dependency {
var fetchFruitDrawStatusUseCase: any FetchFruitDrawStatusUseCase { get }
var drawFruitUseCase: any DrawFruitUseCase { get }
var logoutUseCase: any LogoutUseCase { get }
var textPopUpFactory: any TextPopUpFactory { get }
}

Expand All @@ -18,8 +17,7 @@ public final class FruitDrawComponent: Component<FruitDrawDependency>, FruitDraw
return FruitDrawViewController(
viewModel: .init(
fetchFruitDrawStatusUseCase: dependency.fetchFruitDrawStatusUseCase,
drawFruitUseCase: dependency.drawFruitUseCase,
logoutUseCase: dependency.logoutUseCase
drawFruitUseCase: dependency.drawFruitUseCase
),
textPopUpFactory: dependency.textPopUpFactory,
delegate: delegate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import Utility
public final class FruitDrawViewModel: ViewModelType {
private let fetchFruitDrawStatusUseCase: FetchFruitDrawStatusUseCase
private let drawFruitUseCase: DrawFruitUseCase
private let logoutUseCase: LogoutUseCase
private let disposeBag = DisposeBag()

deinit {
Expand All @@ -20,12 +19,10 @@ public final class FruitDrawViewModel: ViewModelType {

public init(
fetchFruitDrawStatusUseCase: any FetchFruitDrawStatusUseCase,
drawFruitUseCase: any DrawFruitUseCase,
logoutUseCase: any LogoutUseCase
drawFruitUseCase: any DrawFruitUseCase
) {
self.fetchFruitDrawStatusUseCase = fetchFruitDrawStatusUseCase
self.drawFruitUseCase = drawFruitUseCase
self.logoutUseCase = logoutUseCase
}

public struct Input {
Expand All @@ -50,20 +47,13 @@ public final class FruitDrawViewModel: ViewModelType {
let output = Output()

input.fetchFruitDrawStatus
.flatMap { [fetchFruitDrawStatusUseCase, logoutUseCase] _ in
.flatMap { [fetchFruitDrawStatusUseCase] _ in
return fetchFruitDrawStatusUseCase.execute()
.asObservable()
.catch { error in
let wmError = error.asWMError
let message = wmError.errorDescription ?? error.localizedDescription
let message = error.asWMError.errorDescription ?? error.localizedDescription
output.occurredError.onNext(message)

if wmError == .tokenExpired {
return logoutUseCase.execute()
.andThen(.never())
} else {
return .never()
}
return .empty()
}
}
.do(onNext: { entity in
Expand All @@ -77,19 +67,13 @@ public final class FruitDrawViewModel: ViewModelType {
.disposed(by: disposeBag)

input.didTapFruitDraw
.flatMap { [drawFruitUseCase, logoutUseCase] _ in
.flatMap { [drawFruitUseCase] _ in
return drawFruitUseCase.execute()
.asObservable()
.catch { error in
let wmError = error.asWMError
let message = wmError.errorDescription ?? error.localizedDescription
let message = error.asWMError.errorDescription ?? error.localizedDescription
output.occurredError.onNext(message)

if wmError == .tokenExpired {
return logoutUseCase.execute()
.andThen(.never())
} else {
return .never()
}
return .empty()
}
}
.flatMap { [weak self] entity -> Observable<(FruitEntity, Data?)> in
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,11 +134,6 @@ public final class LyricHighlightingViewController: UIViewController {
)
}

override public func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
navigationController?.interactivePopGestureRecognizer?.delegate = nil
}

override public func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
if dimmedLayer == nil {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ private extension IntroViewController {
case let .failure(error):
owner.showBottomSheet(
content: owner.textPopUpFactory.makeView(
text: error.asWMError.errorDescription ?? "",
text: error.asWMError.errorDescription ?? error.localizedDescription,
cancelButtonIsHidden: true,
confirmButtonText: nil,
cancelButtonText: nil,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,32 +11,31 @@ import AuthDomainInterface
import BaseFeature
import ErrorModule
import Foundation
import KeychainModule
import LogManager
import RxCocoa
import RxSwift
import UserDomainInterface
import Utility

public final class IntroViewModel: ViewModelType {
var fetchUserInfoUseCase: FetchUserInfoUseCase
var fetchAppCheckUseCase: FetchAppCheckUseCase
private let fetchUserInfoUseCase: FetchUserInfoUseCase
private let fetchAppCheckUseCase: FetchAppCheckUseCase
private let logoutUseCase: any LogoutUseCase
private let checkIsExistAccessTokenUseCase: any CheckIsExistAccessTokenUseCase
var disposeBag = DisposeBag()
private let disposeBag = DisposeBag()

public struct Input {
var fetchPermissionCheck: PublishSubject<Void> = PublishSubject()
var fetchAppCheck: PublishSubject<Void> = PublishSubject()
var fetchUserInfoCheck: PublishSubject<Void> = PublishSubject()
var endedLottieAnimation: PublishSubject<Void> = PublishSubject()
let fetchPermissionCheck: PublishSubject<Void> = PublishSubject()
let fetchAppCheck: PublishSubject<Void> = PublishSubject()
let fetchUserInfoCheck: PublishSubject<Void> = PublishSubject()
let endedLottieAnimation: PublishSubject<Void> = PublishSubject()
}

public struct Output {
var permissionResult: PublishSubject<Bool?> = PublishSubject()
var appInfoResult: PublishSubject<Result<AppCheckEntity, Error>> = PublishSubject()
var userInfoResult: PublishSubject<Result<String, Error>> = PublishSubject()
var endedLottieAnimation: PublishSubject<Void> = PublishSubject()
let permissionResult: PublishSubject<Bool?> = PublishSubject()
let appInfoResult: PublishSubject<Result<AppCheckEntity, Error>> = PublishSubject()
let userInfoResult: PublishSubject<Result<String, Error>> = PublishSubject()
let endedLottieAnimation: PublishSubject<Void> = PublishSubject()
}

public init(
Expand All @@ -49,7 +48,6 @@ public final class IntroViewModel: ViewModelType {
self.fetchAppCheckUseCase = fetchAppCheckUseCase
self.logoutUseCase = logoutUseCase
self.checkIsExistAccessTokenUseCase = checkIsExistAccessTokenUseCase
LogManager.printDebug("\(Self.self) 생성")
}

public func transform(from input: Input) -> Output {
Expand Down Expand Up @@ -140,16 +138,7 @@ public final class IntroViewModel: ViewModelType {
)
output.userInfoResult.onNext(.success(""))
},
onError: { [logoutUseCase, disposeBag] error in
let asWMError = error.asWMError
if asWMError == .tokenExpired || asWMError == .notFound {
logoutUseCase.execute()
.andThen(Observable.just(()))
.bind {
Utility.PreferenceManager.startPage = 4
}
.disposed(by: disposeBag)
}
onError: { error in
output.userInfoResult.onNext(.failure(error))
}
)
Expand Down
Loading