blob: fabdaa2d22224d2d4161c722f57a1bca0611622c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package xyz.driver.pdsuidomain.formats.json.category
import play.api.libs.functional.syntax._
import play.api.libs.json.{Format, JsPath}
import xyz.driver.pdsuidomain.entities.CategoryWithLabels
import xyz.driver.pdsuidomain.formats.json.label.ApiLabel
final case class ApiCategory(id: Long, name: String, labels: List[ApiLabel])
object ApiCategory {
implicit val format: Format[ApiCategory] = (
(JsPath \ "id").format[Long] and
(JsPath \ "name").format[String] and
(JsPath \ "labels").format[List[ApiLabel]]
) (ApiCategory.apply, unlift(ApiCategory.unapply))
def fromDomain(categoryWithLabels: CategoryWithLabels) = ApiCategory(
id = categoryWithLabels.category.id.id,
name = categoryWithLabels.category.name,
labels = categoryWithLabels.labels.map(x => ApiLabel(x.id.id, x.name, x.categoryId.id))
)
}
|