Guest User

Untitled

a guest
Nov 2nd, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. //: A UIKit based Playground for presenting user interface
  2.  
  3. import UIKit
  4. import PlaygroundSupport
  5.  
  6.  
  7. var usernameTextfield = UITextField()
  8. var userPasswordTextfield = UITextField()
  9.  
  10.  
  11. func userTappedBtn(sender: UIButton) {
  12.  
  13. // verify
  14. // call api
  15. // handle response for api
  16.  
  17.  
  18. }
  19.  
  20. func verifyUserInputs() {
  21. do {
  22. let username = try verifyInput(username: usernameTextfield)
  23. let password = try verifyInput(email: usernameTextfield)
  24.  
  25. // call api
  26.  
  27. callAPi(username: username, password: password, completion: handleApiResponse)
  28.  
  29. }catch {
  30. guard let error = error as? LoginError else {
  31. return
  32. }
  33.  
  34. showError(error)
  35. }
  36. }
  37.  
  38. func handleApiResponse(results: Bool) {
  39. // segue
  40. // show error if there's any
  41. }
  42.  
  43.  
  44. func showError(_ error: LoginError) {
  45. // showAlert(error.localizedDescription)
  46. }
  47.  
  48. enum LoginError: LocalizedError {
  49. case usernameEmpty, usernameCount, emailIsEmpty
  50.  
  51. var localizedDescription: String {
  52. switch self {
  53. case .usernameEmpty:
  54. return "من فضلك اسم المستخدم"
  55. case .usernameCount:
  56. return "عدد حروف اسم المستخدم اقل من المسموح به"
  57. case .emailIsEmpty:
  58. return "لا بد من إدخال البريد الإلكتروني"
  59. }
  60. }
  61. }
  62.  
  63.  
  64. func verifyInput(username: UITextField) throws -> String {
  65. guard username.hasText else {
  66. throw LoginError.usernameEmpty
  67. }
  68.  
  69. guard let user = username.text, user.count > 5 else {
  70. throw LoginError.usernameCount
  71. }
  72.  
  73. return user
  74. }
  75.  
  76. func verifyInput(email: UITextField) throws -> String {
  77. guard email.hasText else {
  78. throw LoginError.emailIsEmpty
  79. }
  80.  
  81. guard let emailText = email.text, emailText.isEmail else {
  82. throw LoginError.usernameCount
  83. }
  84.  
  85. return emailText
  86. }
  87.  
  88.  
  89. extension String {
  90. var isEmail: Bool {
  91. return true
  92. }
  93. }
  94.  
  95.  
  96. func callAPi(username: String, password: String, completion: (Bool) -> Void) {
  97.  
  98. }
Add Comment
Please, Sign In to add comment