diff options
author | Kseniya Tomskikh <ktomskih@datamonsters.co> | 2017-11-22 16:26:10 +0700 |
---|---|---|
committer | Kseniya Tomskikh <ktomskih@datamonsters.co> | 2017-11-22 19:28:21 +0700 |
commit | 7c3feb9b3bf7a1cc12e54c1d994649d03e70e14c (patch) | |
tree | b2dd987d1e564d986ab50d800a65472240b08595 /src/main/scala/xyz/driver/pdsuidomain | |
parent | a8714cbcf0c19639bc33418e7d3a06b3d0b857ef (diff) | |
download | rest-query-7c3feb9b3bf7a1cc12e54c1d994649d03e70e14c.tar.gz rest-query-7c3feb9b3bf7a1cc12e54c1d994649d03e70e14c.tar.bz2 rest-query-7c3feb9b3bf7a1cc12e54c1d994649d03e70e14c.zip |
Support service exceptions
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain')
-rw-r--r-- | src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHelper.scala | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHelper.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHelper.scala index 527ae73..8ed2651 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHelper.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestHelper.scala @@ -4,14 +4,8 @@ import scala.concurrent.{ExecutionContext, Future} import akka.http.scaladsl.model.{HttpResponse, ResponseEntity, StatusCodes, Uri} import akka.http.scaladsl.unmarshalling.{Unmarshal, Unmarshaller} import akka.stream.Materializer -import xyz.driver.pdsuicommon.db.{ - Pagination, - SearchFilterBinaryOperation, - SearchFilterExpr, - SearchFilterNAryOperation, - Sorting, - SortingOrder -} +import xyz.driver.core.rest.errors.{InvalidActionException, InvalidInputException, ResourceNotFoundException} +import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterBinaryOperation, SearchFilterExpr, SearchFilterNAryOperation, Sorting, SortingOrder} import xyz.driver.pdsuicommon.error._ trait RestHelper { @@ -93,7 +87,7 @@ trait RestHelper { .to[ErrorsResponse] .transform( response => response.errors.map(_.message).mkString(", "), - ex => new DomainException("Response has invalid format", ex) + ex => InvalidInputException(s"Response has invalid format: ${ex.getMessage}") ) } @@ -102,11 +96,10 @@ trait RestHelper { } else { extractErrorMessage(response).flatMap { message => Future.failed(response.status match { - case StatusCodes.Unauthorized => new AuthenticationException(message) - case StatusCodes.Forbidden => new AuthorizationException(message) - case StatusCodes.NotFound => new NotFoundException(message) + case StatusCodes.Forbidden => InvalidActionException(message) + case StatusCodes.NotFound => ResourceNotFoundException(message) case other => - new DomainException(s"Unhandled domain error for HTTP status ${other.value}. $message") + InvalidInputException(s"Unhandled domain error for HTTP status ${other.value}. $message") }) } } |