aboutsummaryrefslogblamecommitdiff
path: root/src/main/scala/xyz/driver/core/rest/errors/serviceException.scala
blob: ca1f75928ee252e0be723e9f793ab90da831b0e9 (plain) (tree)
1
2
3
4
5
6
7
8
9
10

                                   
                                                   


                     
                                                                                                               
 

                                                                                                    
 

                                                                                               
 



                                                                                                                 


                                                                                                
 
                                                                                                                   
package xyz.driver.core.rest.errors

abstract class ServiceException extends Exception {
  def message: String
}

final case class InvalidInputException(override val message: String = "Invalid input") extends ServiceException

final case class InvalidActionException(override val message: String = "This action is not allowed")
    extends ServiceException

final case class ResourceNotFoundException(override val message: String = "Resource not found")
    extends ServiceException

final case class ExternalServiceException(serviceName: String, serviceMessage: String) extends ServiceException {
  override def message = s"Error while calling another service: $serviceMessage"
}

final case class ExternalServiceTimeoutException(serviceName: String) extends ServiceException {
  override def message = s"$serviceName took too long to respond"
}

final case class DatabaseException(override val message: String = "Database access error") extends ServiceException