Skip to content

Instantly share code, notes, and snippets.

@mczachurski
Created March 1, 2018 21:13
Show Gist options
  • Save mczachurski/fb506371777969dbbfe925d499fdee6f to your computer and use it in GitHub Desktop.
Save mczachurski/fb506371777969dbbfe925d499fdee6f to your computer and use it in GitHub Desktop.
public func signIn(request: HTTPRequest, response: HTTPResponse) {
do {
let signIn = try request.getObjectFromRequest(SignInDto.self)
guard let user = try self.usersService.get(byEmail: signIn.email) else {
return response.sendNotFoundError()
}
let password = try signIn.password.generateHash(salt: user.salt)
if password != user.password {
return response.sendNotFoundError()
}
let tokenDto = try self.prepareToken(user: user)
return response.sendJson(tokenDto)
}
catch let error where error is DecodingError || error is RequestError {
response.sendBadRequestError()
}
catch let error as ValidationsError {
response.sendValidationsError(error: error)
}
catch {
response.sendInternalServerError(error: error)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment