in app/model/editions/EditionsCard.scala [138:183]
def fromRowOpt(
rs: WrappedResultSet,
prefix: String = ""
): Option[EditionsCard] = {
for {
id <- rs.stringOpt(prefix + "id")
cardType <- rs
.stringOpt(prefix + "card_type")
.flatMap(CardType.withNameOption)
addedOn <- rs
.zonedDateTimeOpt(prefix + "added_on")
.map(_.toInstant.toEpochMilli)
} yield cardType match {
case CardType.Article =>
EditionsArticle(
id,
addedOn,
metadata = extractMetadata[EditionsArticleMetadata](
rs,
prefix,
EditionsArticleMetadata.default
)
)
case CardType.Chef =>
EditionsChef(
id,
addedOn,
metadata = extractMetadata[EditionsChefMetadata](
rs,
prefix,
EditionsChefMetadata()
)
)
case CardType.Recipe => EditionsRecipe(id, addedOn)
case CardType.FeastCollection =>
EditionsFeastCollection(
id,
addedOn,
metadata = extractMetadata[EditionsFeastCollectionMetadata](
rs,
prefix,
EditionsFeastCollectionMetadata()
)
)
}
}