| 1234567891011121314151617181920212223242526272829303132333435363738 |
- package models
- import org.bson.types.ObjectId
- case class Food (
- _id: String = "",
- val name: String,
- val glutenFree: Boolean = false,
- val vegitarian: Boolean = false,
- val vegan: Boolean = false,
- val nutrients: Map[String, Float],
- val source: String,
- val category: Seq[String],
- val primaryMeasure: Measure,
- val density: Float,
- val mass_p_u: Float,
- val price: Int,
- val alternatives: Seq[String] = Nil
- //val picture: Image
- )
- object Food {
- import play.api.libs.json._
- private def roundJsValue(jsval: JsValue, perc: Int): JsValue = {
- jsval match {
- case JsNumber(num) => JsNumber(num.setScale(perc, BigDecimal.RoundingMode.HALF_UP))
- case JsArray(seq) => JsArray(seq.map(roundJsValue(_, perc)))
- case JsObject(map) => JsObject(map.mapValues(roundJsValue(_, perc)))
- case _ => jsval
- }
- }
- implicit val foodFormats = Format[Food](
- Json.using[Json.WithDefaultValues].reads[Food],
- Json.using[Json.WithDefaultValues].writes[Food].transform(roundJsValue(_, 2))
- )
- }
|