diff options
author | Jakob Odersky <jakob@driver.xyz> | 2017-07-18 17:30:52 -0700 |
---|---|---|
committer | Jakob Odersky <jakob@driver.xyz> | 2017-07-18 17:30:52 -0700 |
commit | 99ebbb98068324c2c26dd59484acbe9a8b62ae59 (patch) | |
tree | 6b29e0e0a2ce0d940e5c1332362ded1696ddcdb9 /src/main/scala/xyz/driver/pdsuicommon/error/ErrorsResponse.scala | |
parent | 71f31dfc68cdc158cc0b3d09b02a54c79a569799 (diff) | |
download | rest-query-99ebbb98068324c2c26dd59484acbe9a8b62ae59.tar.gz rest-query-99ebbb98068324c2c26dd59484acbe9a8b62ae59.tar.bz2 rest-query-99ebbb98068324c2c26dd59484acbe9a8b62ae59.zip |
Fixes to error message handling
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuicommon/error/ErrorsResponse.scala')
-rw-r--r-- | src/main/scala/xyz/driver/pdsuicommon/error/ErrorsResponse.scala | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/error/ErrorsResponse.scala b/src/main/scala/xyz/driver/pdsuicommon/error/ErrorsResponse.scala index 6ceadb2..3761cc5 100644 --- a/src/main/scala/xyz/driver/pdsuicommon/error/ErrorsResponse.scala +++ b/src/main/scala/xyz/driver/pdsuicommon/error/ErrorsResponse.scala @@ -5,15 +5,12 @@ import ErrorCode.{ErrorCode, Unspecified} import ErrorsResponse.ResponseError import xyz.driver.pdsuicommon.auth.{AnonymousRequestContext, RequestId} import xyz.driver.pdsuicommon.utils.Utils -import play.api.http.Writeable import play.api.libs.functional.syntax._ import play.api.libs.json._ -import play.api.mvc.{Result, Results} +import play.api.mvc.Results import xyz.driver.pdsuicommon.validation.JsonValidationErrors -class ErrorsResponse(val errors: Seq[ResponseError], private val httpStatus: Results#Status, val requestId: RequestId) { - def toResult(implicit writeable: Writeable[ErrorsResponse]): Result = httpStatus(this) -} +final case class ErrorsResponse(errors: Seq[ResponseError], requestId: RequestId) object ErrorsResponse { @@ -36,12 +33,10 @@ object ErrorsResponse { } - implicit val writes: Writes[ErrorsResponse] = Writes { errorsResponse => - Json.obj( - "errors" -> Json.toJson(errorsResponse.errors), - "requestId" -> Json.toJson(errorsResponse.requestId.value) - ) - } + implicit val errorsResponseJsonFormat: Format[ErrorsResponse] = ( + (JsPath \ "errors").format[Seq[ResponseError]] and + (JsPath \ "requestId").format[String] + )((errs, req) => ErrorsResponse.apply(errs, RequestId(req)), res => (res.errors, res.requestId.value)) // deprecated, will be removed in REP-436 def fromString(message: String, httpStatus: Results#Status)( @@ -53,7 +48,6 @@ object ErrorsResponse { message = message, code = Unspecified )), - httpStatus = httpStatus, requestId = context.requestId ) } @@ -83,7 +77,7 @@ object ErrorsResponse { ) } - new ErrorsResponse(errors, Results.BadRequest, context.requestId) + new ErrorsResponse(errors, context.requestId) } } |