Skip to content

Commit

Permalink
Merge pull request #58 from boostcampwm-2022/feature/ConnectLoginLayer
Browse files Browse the repository at this point in the history
Feature/connect login layer
  • Loading branch information
jinwoong16 committed Nov 30, 2022
2 parents 80bee0a + 00c844c commit 4c8ae2b
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 14 deletions.
8 changes: 4 additions & 4 deletions DailyQuest/DailyQuest.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
340FDFD5292B5DB700C4E3DC /* DefaultQuestUseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3416FC89292B560800B504C5 /* DefaultQuestUseCase.swift */; };
340FDFDB292B7A1500C4E3DC /* QuestViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 340FDFDA292B7A1500C4E3DC /* QuestViewModelTests.swift */; };
340FDFDE292B7A2C00C4E3DC /* QuestUseCaseMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 340FDFDD292B7A2C00C4E3DC /* QuestUseCaseMock.swift */; };
34113BE82934917500AB4919 /* AuthViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34113BE72934917500AB4919 /* AuthViewModel.swift */; };
34113BE82934917500AB4919 /* LoginViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34113BE72934917500AB4919 /* LoginViewModel.swift */; };
34113BEB2934A3B200AB4919 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34113BEA2934A3B200AB4919 /* LoginViewController.swift */; };
34113BED2934BD3D00AB4919 /* TextFieldForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34113BEC2934BD3D00AB4919 /* TextFieldForm.swift */; };
3413139C291E480500E607E1 /* SnapKit in Frameworks */ = {isa = PBXBuildFile; productRef = 3413139B291E480500E607E1 /* SnapKit */; };
Expand Down Expand Up @@ -155,7 +155,7 @@
340A724A29348C2200B26AA6 /* DefaultAuthUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultAuthUseCase.swift; sourceTree = "<group>"; };
340FDFDA292B7A1500C4E3DC /* QuestViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuestViewModelTests.swift; sourceTree = "<group>"; };
340FDFDD292B7A2C00C4E3DC /* QuestUseCaseMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuestUseCaseMock.swift; sourceTree = "<group>"; };
34113BE72934917500AB4919 /* AuthViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewModel.swift; sourceTree = "<group>"; };
34113BE72934917500AB4919 /* LoginViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewModel.swift; sourceTree = "<group>"; };
34113BEA2934A3B200AB4919 /* LoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = "<group>"; };
34113BEC2934BD3D00AB4919 /* TextFieldForm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldForm.swift; sourceTree = "<group>"; };
3416FC87292B54DB00B504C5 /* QuestUseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuestUseCase.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -311,7 +311,7 @@
34113BE62934916B00AB4919 /* ViewModel */ = {
isa = PBXGroup;
children = (
34113BE72934917500AB4919 /* AuthViewModel.swift */,
34113BE72934917500AB4919 /* LoginViewModel.swift */,
);
path = ViewModel;
sourceTree = "<group>";
Expand Down Expand Up @@ -1081,7 +1081,7 @@
34874AA629252088000570DF /* AddQuestsViewController.swift in Sources */,
34642AB62925D9E40052FA0E /* UserInfoView.swift in Sources */,
349955292923600A007AB99E /* BrowseViewController.swift in Sources */,
34113BE82934917500AB4919 /* AuthViewModel.swift in Sources */,
34113BE82934917500AB4919 /* LoginViewModel.swift in Sources */,
34EE6EB72924C674005AF583 /* QuestView.swift in Sources */,
B58DFC0A29227DA800C68A4B /* CalendarCell.swift in Sources */,
3499551529232533007AB99E /* UIColor+.swift in Sources */,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,24 @@ import UIKit
final class SettingsSceneDIContainer {

// MARK: - Repositories
func makeAuthRepository() -> AuthRepository {
return DefaultAuthRepository()
}

// MARK: - Use Cases
func makeAuthUseCase() -> AuthUseCase {
return DefaultAuthUseCase(authRepository: makeAuthRepository())
}

// MARK: - View Models
func makeLoginViewModel() -> LoginViewModel {
return LoginViewModel(authUseCase: makeAuthUseCase())
}

// MARK: - View Controller
func makeLoginViewController() -> LoginViewController {
return LoginViewController.create(with: makeLoginViewModel())
}

// MARK: - Flow
func makeSettingsCoordinator(navigationController: UINavigationController,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ final class DefaultSettingsCoordinator: SettingsCoordinator {
}

func showLoginFlow() {
let loginViewController = LoginViewController()
let loginViewController = settingsSceneDIContainer.makeLoginViewController()
navigationController.pushViewController(loginViewController, animated: true)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ import RxCocoa
import SnapKit

final class LoginViewController: UIViewController {
private var viewModel: LoginViewModel!
private var disposableBag = DisposeBag()

private lazy var container: UIStackView = {
let container = UIStackView()
Expand Down Expand Up @@ -44,10 +46,19 @@ final class LoginViewController: UIViewController {
}()

// MARK: Life Cycle
static func create(with viewModel: LoginViewModel) -> LoginViewController {
let vc = LoginViewController()
vc.setup(with: viewModel)

return vc
}

override func viewDidLoad() {
super.viewDidLoad()

configureUI()

bind()
}

private func configureUI() {
Expand All @@ -64,14 +75,32 @@ final class LoginViewController: UIViewController {
make.width.equalToSuperview().multipliedBy(0.8)
}
}

private func setup(with authViewModel: LoginViewModel) {
viewModel = authViewModel
}
}

#if canImport(SwiftUI) && DEBUG
import SwiftUI

struct ViewController_Preview: PreviewProvider {
static var previews: some View {
LoginViewController().showPreview(.iPhone14)
extension LoginViewController {
private func bind() {
let input = LoginViewModel.Input(
emailFieldDidEditEvent: emailField.rx.text.orEmpty.asObservable(),
passwordFieldDidEditEvent: passwordField.rx.text.orEmpty.asObservable(),
submitButtonDidTapEvent: submitButton.rx.tap.asObservable()
)

let output = viewModel.transform(input: input, disposeBag: disposableBag)

output
.buttonEnabled
.drive(submitButton.rx.isEnabled)
.disposed(by: disposableBag)

output
.loginResult
.subscribe(onNext: { result in
print("login result is :::: ", result)
})
.disposed(by: disposableBag)
}
}
#endif
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// AuthViewModel.swift
// LoginViewModel.swift
// DailyQuest
//
// Created by jinwoong Kim on 2022/11/28.
Expand All @@ -10,7 +10,7 @@ import Foundation
import RxSwift
import RxCocoa

final class AuthViewModel {
final class LoginViewModel {
private let authUseCase: AuthUseCase

init(authUseCase: AuthUseCase) {
Expand Down

0 comments on commit 4c8ae2b

Please sign in to comment.