All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.rmn.jsonapi.models.TopLevelError.scala Maven / Gradle / Ivy

The newest version!
package com.rmn.jsonapi.models

import com.rmn.jsonapi.formatters.TypeFormatter
import com.rmn.jsonapi.types.{JsonApiTypes, MetaTypes, ErrorTypes}
import play.api.libs.functional.syntax._
import play.api.libs.json._

case class TopLevelError[JApi: JsonApiTypes, Err : ErrorTypes, Meta : MetaTypes](
  jsonapi: JApi,
  error: Err,
  meta: Meta
)

object TopLevelError {
  implicit def formats[JApi: JsonApiTypes, Err: ErrorTypes, Meta : MetaTypes] : Format[TopLevelError[JApi, Err, Meta]] = Format[TopLevelError[JApi, Err, Meta]](
    (
      implicitly[TypeFormatter[JApi]].readAt(__ \ "jsonapi") and
      implicitly[TypeFormatter[Err]].readAt(__ \ "errors") and
      implicitly[TypeFormatter[Meta]].readAt(__ \ "meta")
    )(TopLevelError.apply[JApi, Err, Meta] _),
    (
      implicitly[TypeFormatter[JApi]].writeAt(__ \ "jsonapi") and
      implicitly[TypeFormatter[Err]].writeAt(__ \ "errors") and
      implicitly[TypeFormatter[Meta]].writeAt  (__ \ "meta")
    )(unlift(TopLevelError.unapply[JApi, Err, Meta]))
  )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy