From fa6e4b28cc4c66ccef2196f190758eb0926d4ab0 Mon Sep 17 00:00:00 2001 From: heerucan Date: Sat, 13 Nov 2021 02:02:24 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9E=95[ADD]=20AuthManager=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1(#12)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Source/Controller/Auth/CompleteVC.swift | 5 ++ .../Source/Controller/Auth/LoginVC.swift | 9 ++++ .../Source/Controller/Auth/SignUpVC.swift | 6 +++ .../Source/Network/Manager/AuthManager.swift | 51 +++++++++++++++++++ 4 files changed, 71 insertions(+) diff --git a/Sopt29th-Assignment/Sopt29th-Assignment/Source/Controller/Auth/CompleteVC.swift b/Sopt29th-Assignment/Sopt29th-Assignment/Source/Controller/Auth/CompleteVC.swift index 4981357..cc41d5c 100644 --- a/Sopt29th-Assignment/Sopt29th-Assignment/Source/Controller/Auth/CompleteVC.swift +++ b/Sopt29th-Assignment/Sopt29th-Assignment/Source/Controller/Auth/CompleteVC.swift @@ -13,7 +13,9 @@ import SnapKit import Then class CompleteVC: UIViewController { + // MARK: - Properties + var name: String? private let logoImageView = UIImageView().then { @@ -40,6 +42,7 @@ class CompleteVC: UIViewController { } // MARK: - Lifecycle + override func viewDidLoad() { super.viewDidLoad() configUI() @@ -48,6 +51,7 @@ class CompleteVC: UIViewController { } // MARK: - Custom Method + private func configUI() { view.backgroundColor = .white navigationController?.navigationBar.isHidden = true @@ -88,6 +92,7 @@ class CompleteVC: UIViewController { } // MARK: - @objc + @objc func touchupCompleteButton(_ sender: UIButton) { let mainVC = MainTabVC() mainVC.modalPresentationStyle = .fullScreen diff --git a/Sopt29th-Assignment/Sopt29th-Assignment/Source/Controller/Auth/LoginVC.swift b/Sopt29th-Assignment/Sopt29th-Assignment/Source/Controller/Auth/LoginVC.swift index 6b8aa40..fbeebfa 100644 --- a/Sopt29th-Assignment/Sopt29th-Assignment/Source/Controller/Auth/LoginVC.swift +++ b/Sopt29th-Assignment/Sopt29th-Assignment/Source/Controller/Auth/LoginVC.swift @@ -15,7 +15,9 @@ import SnapKit import Then class LoginVC: UIViewController { + // MARK: - Properties + fileprivate var currentNonce: String? private let logoImageView = UIImageView().then { @@ -71,6 +73,7 @@ class LoginVC: UIViewController { } // MARK: - Lifecycle + override func viewDidLoad() { super.viewDidLoad() configUI() @@ -80,6 +83,7 @@ class LoginVC: UIViewController { } // MARK: - Custom Method + private func configUI() { view.backgroundColor = .white } @@ -144,6 +148,7 @@ class LoginVC: UIViewController { } // MARK: - Apple 로그인 + @objc func touchUpAppleButton(_ sender: UIButton) { let request = createAppleIDRequest() let authorizationController = ASAuthorizationController(authorizationRequests: [request]) @@ -190,6 +195,7 @@ class LoginVC: UIViewController { } // MARK: - @objc + @objc func textFieldDidChange(textField: UITextField){ guard let name = nameTextField.text, let email = emailTextField.text, @@ -241,6 +247,7 @@ class LoginVC: UIViewController { } // MARK: - UITextFieldDelegate + extension LoginVC: UITextFieldDelegate { func textFieldShouldReturn(_ textField: UITextField) -> Bool { switch textField { @@ -254,6 +261,7 @@ extension LoginVC: UITextFieldDelegate { } // MARK: - ASAuthorizationControllerDelegate + @available(iOS 13.0, *) extension LoginVC: ASAuthorizationControllerDelegate { func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) { @@ -310,6 +318,7 @@ extension LoginVC: ASAuthorizationControllerDelegate { } // MARK: - ASAuthorizationControllerPresentationContextProviding + @available(iOS 13.0, *) extension LoginVC: ASAuthorizationControllerPresentationContextProviding { func presentationAnchor(for controller: ASAuthorizationController) -> ASPresentationAnchor { diff --git a/Sopt29th-Assignment/Sopt29th-Assignment/Source/Controller/Auth/SignUpVC.swift b/Sopt29th-Assignment/Sopt29th-Assignment/Source/Controller/Auth/SignUpVC.swift index 21541db..ce2bac9 100644 --- a/Sopt29th-Assignment/Sopt29th-Assignment/Source/Controller/Auth/SignUpVC.swift +++ b/Sopt29th-Assignment/Sopt29th-Assignment/Source/Controller/Auth/SignUpVC.swift @@ -14,7 +14,9 @@ import SnapKit import Then class SignUpVC: UIViewController { + // MARK: - Properties + private let logoImageView = UIImageView().then { $0.image = Const.Image.logo $0.contentMode = .scaleAspectFit @@ -66,6 +68,7 @@ class SignUpVC: UIViewController { } // MARK: - Lifecycle + override func viewDidLoad() { super.viewDidLoad() configUI() @@ -75,6 +78,7 @@ class SignUpVC: UIViewController { } // MARK: - Custom Method + private func configUI() { view.backgroundColor = .white } @@ -126,6 +130,7 @@ class SignUpVC: UIViewController { } // MARK: - @objc + @objc func textFieldDidChange(textField: UITextField){ guard let name = nameTextField.text, let email = emailTextField.text, @@ -187,6 +192,7 @@ class SignUpVC: UIViewController { } // MARK: - UITextFieldDelegate + extension SignUpVC: UITextFieldDelegate { func textFieldShouldReturn(_ textField: UITextField) -> Bool { switch textField { diff --git a/Sopt29th-Assignment/Sopt29th-Assignment/Source/Network/Manager/AuthManager.swift b/Sopt29th-Assignment/Sopt29th-Assignment/Source/Network/Manager/AuthManager.swift index a36145a..bcb3d20 100644 --- a/Sopt29th-Assignment/Sopt29th-Assignment/Source/Network/Manager/AuthManager.swift +++ b/Sopt29th-Assignment/Sopt29th-Assignment/Source/Network/Manager/AuthManager.swift @@ -8,3 +8,54 @@ import Foundation import Moya + +class AuthManager { + + // MARK: - Static Properties + + static let shared: AuthManager = AuthManager() + + // MARK: - Network Properties + + private let authProvider = MoyaProvider(plugins: [NetworkLoggerPlugin()]) + private var authModel: AuthModel? + + // MARK: - POST : Login + + func fetchLogin(email: String, password: String, completion: @escaping (() -> ())) { + let param = LoginRequest.init(email, password) + authProvider.request(.login(param: param)) { result in + switch result { + case .success(let result): + do { + self.authModel = try result.map(AuthModel.self) + completion() + } catch(let err) { + print(err.localizedDescription) + } + case .failure(let err): + print(err.localizedDescription) + } + } + } + + + // MARK: - POST : SignUp + + func fetchSignUp(email: String, name: String, password: String, completion: @escaping (() -> ())) { + let param = SignUpRequest.init(email, name, password) + authProvider.request(.signUp(param: param)) { result in + switch result { + case .success(let result): + do { + self.authModel = try result.map(AuthModel.self) + completion() + } catch(let err) { + print(err.localizedDescription) + } + case .failure(let err): + print(err.localizedDescription) + } + } + } +}