Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //: A UIKit based Playground for presenting user interface
- import UIKit
- import PlaygroundSupport
- var usernameTextfield = UITextField()
- var userPasswordTextfield = UITextField()
- func userTappedBtn(sender: UIButton) {
- // verify
- // call api
- // handle response for api
- }
- func verifyUserInputs() {
- do {
- let username = try verifyInput(username: usernameTextfield)
- let password = try verifyInput(email: usernameTextfield)
- // call api
- callAPi(username: username, password: password, completion: handleApiResponse)
- }catch {
- guard let error = error as? LoginError else {
- return
- }
- showError(error)
- }
- }
- func handleApiResponse(results: Bool) {
- // segue
- // show error if there's any
- }
- func showError(_ error: LoginError) {
- // showAlert(error.localizedDescription)
- }
- enum LoginError: LocalizedError {
- case usernameEmpty, usernameCount, emailIsEmpty
- var localizedDescription: String {
- switch self {
- case .usernameEmpty:
- return "من فضلك اسم المستخدم"
- case .usernameCount:
- return "عدد حروف اسم المستخدم اقل من المسموح به"
- case .emailIsEmpty:
- return "لا بد من إدخال البريد الإلكتروني"
- }
- }
- }
- func verifyInput(username: UITextField) throws -> String {
- guard username.hasText else {
- throw LoginError.usernameEmpty
- }
- guard let user = username.text, user.count > 5 else {
- throw LoginError.usernameCount
- }
- return user
- }
- func verifyInput(email: UITextField) throws -> String {
- guard email.hasText else {
- throw LoginError.emailIsEmpty
- }
- guard let emailText = email.text, emailText.isEmail else {
- throw LoginError.usernameCount
- }
- return emailText
- }
- extension String {
- var isEmail: Bool {
- return true
- }
- }
- func callAPi(username: String, password: String, completion: (Bool) -> Void) {
- }
Add Comment
Please, Sign In to add comment