У меня есть запечатанная черта ниже и класс ее случаев, и я хотел бы преобразовать ее в JSON, чтобы передать ее в качестве ответа в моем приложении Akka Http.
sealed trait HttpRestError {
val statusCode: StatusCode
val code: String
val message: String
}
case class UnauthorizedError() extends HttpRestError {
override val statusCode: StatusCode = Unauthorized
override val code: String = "Unauthorized"
override val message: String = "Unauthorized"
}
И часть маршрута
def login2: Route = {
path("test") {
pathEndOrSingleSlash {
get {
onComplete(authService.testUser.toRestError[UnauthorizedError]) {
case util.Success(f) => f match {
case Left(error) =>
complete((error.statusCode, error))
case Right(v) => complete(OK -> v)
}
case util.Failure(ex) =>
complete(StatusCodes.InternalServerError)
}
}
}
}
}
Проблема в том, что когда Either
возвращает сторону Left
, ответ пуст, но код ошибки верен.Есть идеи?