I hereby claim:
- I am srp on github.
- I am srparish (https://keybase.io/srparish) on keybase.
- I have a public key ASCev3Yh3E9v4t_kyi2cV7-D8KyVF402GuQjcGODjaLIfAo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
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))) | |
} | |
} |
def login(dbConn: DbConnection, req Reuqest): Try[Response] = | |
req.body match { | |
case Failure(err) => | |
Failure(err) | |
case Success(reqJsonStr) => | |
json.parse(reqJsonStr) match { | |
case Failure(err) => | |
Failure(err) | |
case Success(reqJson) => | |
validateAndDecode[LoginRequest](reqJson) match { |
case class LoginRequest(username: String, password: String) | |
case class UserDetails(username: String, hashedPassword: String) | |
def login(dbConn: DbConnection, req: Request): Try[Response] = | |
for { | |
reqJsonStr <- req.body | |
reqJson <- json.parse(reqJsonStr) | |
loginReq <- validateAndDecode[LoginRequest](reqJson) | |
userDetails <- dbConn.findUser[UserDetails](dbConn, loginReq.username) | |
_ <- doesPasswordMatch(userDetails.hashedPassword, loginReq.password) |
login(_DbConn, req#{body = <<>>}) -> | |
{error, "No body provided"}; | |
login(DbConn, req#{body = ReqJsonStr}) -> | |
parse_json(DbConn, ReqJsonStr). | |
parse_json(DbConn, ReqJsonStr) -> | |
case json:parse(ReqJsonStr) of | |
{error, Reason} -> {error, Reason}; | |
{ok, ReqJson} -> decode_json(DbConn, ReqJson) | |
end |
login(_DbConn, req#{body = <<>>}) -> | |
{error, "No body provided"}; | |
login(DbConn, req#{body = ReqJsonStr}) -> | |
case json:parse(ReqJsonStr) of | |
{error, Reason} -> | |
{error, Reason}; | |
{ok, ReqJson} -> | |
case validate_and_decode_login_request(ReqJson) of | |
{error, Reason} -> | |
{error, Reason}; |
// To run: scala gridworld.scala | |
val l = 1.0 | |
val R = -200 | |
class Cell(val initValue: Option[Double], var value: Option[Double] = None) { | |
var x0: Int = -9999 | |
var y0: Int = -9999 | |
var world: IndexedSeq[IndexedSeq[Cell]] = null | |
value = initValue |