membership-attribute-service/app/models/ApiError.scala (18 lines of code) (raw):
package models
import controllers.NoCache
import play.api.libs.json._
import play.api.mvc._
import scala.language.implicitConversions
case class ApiError(message: String, details: String, statusCode: Int)
object ApiError {
implicit val apiErrorWrites = new Writes[ApiError] {
override def writes(o: ApiError): JsValue = Json.obj(
"message" -> o.message,
"details" -> o.details,
"statusCode" -> o.statusCode,
)
}
implicit def apiErrorToResult(err: ApiError): Result = {
NoCache(Results.Status(err.statusCode)(Json.toJson(err)))
}
}