Skip to content

Instantly share code, notes, and snippets.

@robhinds
Created May 21, 2018 09:17
Show Gist options
  • Save robhinds/410935f89841b452750fa2b0b4311022 to your computer and use it in GitHub Desktop.
Save robhinds/410935f89841b452750fa2b0b4311022 to your computer and use it in GitHub Desktop.
trait DefaultExceptionHandler extends ExceptionHandlerComponent {
private val l = Logger(classOf[DefaultExceptionHandler])
override def exceptionHandler: ExceptionHandler = new ExceptionHandler {
override def handle[B](e: ApiResponse[B]): Either[ErrorResponse, B] = e match {
case Left(x: JsonError) => errorResponse("400", s"Error de-serialising JSON: ${x.getMessage}")
case Left(x: NotFound) => errorResponse("404", x.message)
case Left(x: BadRequest) => errorResponse("400", x.message)
case Left(x: InternalServerError) => errorResponse("500", x.message)
case Left(x) => errorResponse("500", x.getMessage)
case Right(x) => Right(x)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment