Advertisement
Guest User

Untitled

a guest
Aug 28th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. struct UserSignUp {
  2. var firstName: String
  3. var lastName: String?
  4. var username: String
  5. var password: String
  6.  
  7. class Builder {
  8. var firstName: String?
  9. var lastName: String?
  10. var username: String?
  11. var password: String?
  12. var confirmPassword: String?
  13.  
  14. func set(firstName: String) -> Builder {
  15. self.firstName = firstName
  16. return self
  17. }
  18.  
  19. func set(lastName: String) -> Builder {
  20. self.lastName = lastName
  21. return self
  22. }
  23.  
  24. func set(username: String) -> Builder {
  25. self.username = username
  26. return self
  27. }
  28.  
  29. func set(password: String) -> Builder {
  30. self.password = password
  31. return self
  32. }
  33.  
  34. func set(confirmPassword: String) -> Builder {
  35. self.confirmPassword = confirmPassword
  36. return self
  37. }
  38.  
  39. func build() -> UserSignUp? {
  40. guard let firstName = firstName, !firstName.isEmpty else {
  41. return nil
  42. }
  43. // last name not required, so don't unwrap
  44. guard lastName?.isEmpty ?? true else {
  45. return nil
  46. }
  47. guard let username = username, !username.isEmpty else {
  48. return nil
  49. }
  50. guard let password = password, password.characters.count >= 4 else {
  51. return nil
  52. }
  53. guard let confirmPassword = confirmPassword, confirmPassword == password else {
  54. return nil
  55. }
  56. return UserSignUp(firstName: firstName, lastName: lastName, username: username, password: password)
  57. }
  58. }
  59. }
  60.  
  61. // USAGE
  62. let user: User? = User.Builder()
  63. .set(firstName: "Matt")
  64. .set(lastName: "Hoffman")
  65. .set(username: "muuhoffman")
  66. .set(password: "foo")
  67. .set(confirmPassword: "foo")
  68. .build()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement