Guest User

Untitled

a guest
Jul 19th, 2018
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. struct User : Content, PostgreSQLModel, Parameters {
  2.  
  3. var id : Int?
  4. private(set) var email: String
  5. private(set) var password: String
  6.  
  7. }
  8.  
  9. extension User: BasicAuthenticatable {
  10.  
  11. static let usernameKey: WritableKeyPath<User, String> = .email
  12. static let passwordKey: WritableKeyPath<User, String> = .password
  13.  
  14. }
  15.  
  16. private extension UserController {
  17.  
  18. func registerUser(_ request: Request, newUser: User) throws -> Future<HTTPResponseStatus> {
  19.  
  20. return try User.query(on: request).filter(.email == newUser.email).first().flatMap { existingUser in
  21.  
  22. guard existingUser == nil else {
  23. throw Abort(.badRequest, reason: "a user with this email already exists" , identifier: nil)
  24. }
  25.  
  26. let digest = try request.make(BCryptDigest.self)
  27. let hashedPassword = try digest.hash(newUser.password)
  28. let persistedUser = User(id: nil, email: newUser.email, password: hashedPassword)
  29.  
  30. return persistedUser.save(on: request).transform(to: .created)
  31. }
  32. }
  33. }
Add Comment
Please, Sign In to add comment