def upgradeItem()

in app/story_packages/util/ContentUpgrade.scala [46:66]


  def upgradeItem(json: JValue): JValue = {
    Try({
      val jsonString = JsonMethods.compact(JsonMethods.render(json))
      val maybeParsedJson: Option[Json] = parser.parse(jsonString).toOption
      val maybeCapiContent: Option[Content] = maybeParsedJson.flatMap(json => json.as[Content].toOption)

      (json, maybeCapiContent) match {
        case (jsObject: JObject, Some(content)) =>
          val cardStyle = CardStyle(content, TrailMetaData.empty)
          val metaDataMap: Map[String, Boolean] = ResolvedMetaData.toMap(ResolvedMetaData.fromContent(content, cardStyle))

          jsObject ~ ("frontsMeta" ->
            ("defaults" -> metaDataMap) ~
              ("tone" -> cardStyle.toneString))
        case _ => json
      }
    }) match {
      case Success(capiItem) => capiItem
      case Failure(_) => json
    }
  }