// // LoginInteractor.swift // GMERemittance // // Created by gme_2 on 07/09/2018. //Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved. // import Foundation class LoginInteractor { // MARK: Properties weak var output: LoginInteractorOutput? private let service: LoginServiceType // MARK: Initialization init(service: LoginServiceType) { self.service = service } func toBase64(text: String) -> String? { guard let data = text.data(using: String.Encoding.utf8) else { return nil } return data.base64EncodedString(options: Data.Base64EncodingOptions(rawValue: 0)) } // MARK: Converting entities } // MARK: Login interactor input interface extension LoginInteractor: LoginInteractorInput { func login(userName: String, encryptedPassword: String) { // send encrypted password to server for kftc self.service.accessCode( userId: userName, password: encryptedPassword, success: { (user) in let accessCode = user?.accessCode ?? "" let accessCodeBase64 = accessCode Utility.save(user: user, accessCodeBase64: accessCodeBase64, password: encryptedPassword, login: true) self.output?.loggedIn() }, failure: { (error) in self.output?.show(error: error) guard let storedEmail = KeyChain.shared.get(key: .id), storedEmail == userName else { return } KeyChain.shared.removeAll() } ) } }