Skip to content

Instantly share code, notes, and snippets.

@srp
Last active January 2, 2017 20:11
Show Gist options
  • Save srp/940c88b47deb034ab4a9e04408c8ff04 to your computer and use it in GitHub Desktop.
Save srp/940c88b47deb034ab4a9e04408c8ff04 to your computer and use it in GitHub Desktop.
def login(dbConn: DbConnection, req: Request): Try[Response] =
req.body.flatMap { reqJsonStr =>
json.parse(reqJsonStr).flatMap { reqJson =>
validateAndDecode[LoginRequest](reqJson).flatMap { loginReq =>
dbConn.findUser[UserDetails](dbConn, loginReq.username).flatMap { userDetails =>
doesPasswordMatch(userDetails.hashedPassword, loginReq.password).flatMap { _ =>
jwt.generateToken(loginReq.username).map { jwtToken =>
Response(200, json.encode(Map("token" -> jwtToken)))
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment