Guest User

Untitled

a guest
Mar 4th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. public final class LoginCoordinator: AbstractCoordinator {
  2.  
  3. // MARK: Delegate Properties
  4. private unowned let delegate: LoginCoordinatorDelegate
  5.  
  6. // MARK: Initializers
  7. public init(delegate: LoginCoordinatorDelegate, navigationController: UINavigationController) {
  8. self.delegate = delegate
  9. self.navigationController = navigationController
  10. super.init()
  11. }
  12.  
  13. // MARK: Stored Properties
  14. private let navigationController: UINavigationController
  15. private let loginService: LoginService = LoginService()
  16.  
  17. // MARK: Instance Methods
  18. public override func start() {
  19. super.start()
  20. let vc: LoginVC = LoginVC(delegate: self)
  21. self.navigationController.pushViewController(
  22. vc,
  23. animated: true
  24. )
  25. }
  26. }
  27.  
  28. // MARK: - LoginVCDelegate Protocol
  29. extension LoginCoordinator: LoginVCDelegate {
  30. public func login(with email: String, password: String) {
  31. self.loginService.getUser(with: email, password: password)
  32. .onSuccess { [weak self] (user: User) in
  33. DispatchQueue.main.async {
  34. self?.navigationController.popViewController(
  35. animated: true
  36. )
  37. }
  38. self?.delegate.storeUser(user, coordinator: self))
  39. }
  40. .onFailure { [weak self] (error: NetworkingError) in
  41. print(error)
  42. self?.presentErrorAlert()
  43. }
  44. }
  45. }
Add Comment
Please, Sign In to add comment