Bez popisu

ModelsAndJsonMap.scala 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package fr.natan.akkastreamfileprocessingapi.models
  2. import play.api.libs.json.{Json, Writes}
  3. object ModelsAndJsonMap {
  4. final case class Person(personID: String,
  5. primaryName: String,
  6. birthYear: Option[String],
  7. deathYear: Option[String],
  8. primaryProfession: List[String],
  9. knownForTitles: List[String]
  10. ) {
  11. implicit val personJsonFormatter: Writes[Person] =
  12. (person: Person) => Json.obj(
  13. "person id" -> person.personID,
  14. "primary name" -> person.primaryName,
  15. "birth year" -> person.birthYear,
  16. "death year" -> person.deathYear,
  17. "primary profession" -> person.primaryProfession,
  18. "known for titles" -> person.knownForTitles
  19. )
  20. }
  21. final case class TvSerie(tvSerieID: String,
  22. titleType: String,
  23. primaryTitle: String,
  24. originalTitle: String,
  25. startYear: String,
  26. endYear: Option[String],
  27. runtimeMinutes: String,
  28. genres: List[String]
  29. ) {
  30. implicit val tvSerieJsonFormatter: Writes[TvSerie] =
  31. (tvSerie: TvSerie) => Json.obj(
  32. "tv serie id" -> tvSerie.tvSerieID,
  33. "tv serie type" -> tvSerie.titleType,
  34. "primary title" -> tvSerie.primaryTitle,
  35. "original title" -> tvSerie.originalTitle,
  36. "start year" -> tvSerie.startYear,
  37. "end year" -> tvSerie.endYear,
  38. "runtime minutes" -> tvSerie.runtimeMinutes,
  39. "genres" -> tvSerie.genres
  40. )
  41. }
  42. final case class Episode(
  43. id: String,
  44. parentId: String,
  45. seasonNumber: Option[String],
  46. episodeNumber: Option[String]
  47. ){
  48. implicit val episodeFormatter : Writes[Episode] =
  49. (episode:Episode) => Json.obj(
  50. "episode id"-> episode.id,
  51. "parent id"-> episode.parentId,
  52. "season number"->episode.seasonNumber,
  53. "episode number"->episode.episodeNumber
  54. )
  55. }
  56. }

Powered by TurnKey Linux.