Как расшифровать запечатанную черту в JSON - Circe - PullRequest
0 голосов
/ 25 октября 2018

У меня есть запечатанная черта ниже и класс ее случаев, и я хотел бы преобразовать ее в 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, ответ пуст, но код ошибки верен.Есть идеи?

...