Advertisement
Guest User

Untitled

a guest
Jan 2nd, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. validate(_DbConn, req#{body = <<>>}) ->
  2. {error, "No body provided"};
  3. validate(DbConn, req#{body = ReqJsonStr}) ->
  4. parse_json(DbConn, ReqJsonStr).
  5.  
  6. parse_json(DbConn, ReqJsonStr) ->
  7. case json:parse(ReqJsonStr) of
  8. {error, Reason} -> {error, Reason};
  9. {ok, ReqJson} -> decode_json(DbConn, ReqJson)
  10. end
  11.  
  12. decode_json(DbConn, ReqJson) ->
  13. case validate_and_decode_login_request(ReqJson) of
  14. {ok, #login_request{username = Username, password = Password}}) ->
  15. db_find_user(DbConn, Username, Password)
  16. end.
  17.  
  18. db_find_user(DbConn, Username, Password) ->
  19. case db.find_user(DbConn, Username, Password) of
  20. {:error, Reason} -> {:error, Reason};
  21. {:ok, #user_details{hashed_password = HashedPassword}} ->
  22. check_password(Username, Password, HashedPassword)
  23. end.
  24.  
  25. check_password(Username, Password, HashedPassword) ->
  26. case does_password_match(HashedPassword, Password) of
  27. {error, Reason} ->
  28. {error, Reason};
  29. {ok, false} ->
  30. {error, "Invalid username or password"}
  31. {ok, true} ->
  32. generateJwtToken(Username)
  33. end.
  34.  
  35. generateJwtToken(Username) ->
  36. case jwt.generateToken(Username) of
  37. {error, Reason} ->
  38. {error, Reason};
  39. {ok, jwtToken} ->
  40. {ok, 200, json:encode([{"token", jwtToken}])}
  41. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement