in newswires/app/db/FingerpostWireEntry.scala [111:139]
def apply(
fm: ResultName[FingerpostWireEntry]
)(rs: WrappedResultSet): FingerpostWireEntry = {
val fingerpostContent = Json.parse(rs.string(fm.content)).as[FingerpostWire]
val maybeCategoryCodes = rs.arrayOpt(fm.categoryCodes)
val categoryCodes = maybeCategoryCodes match {
case Some(array) =>
array.getArray
.asInstanceOf[Array[String]]
.toList
case None => Nil
}
FingerpostWireEntry(
id = rs.long(fm.id),
supplier = rs.string(fm.supplier),
externalId = rs.string(fm.externalId),
ingestedAt = rs.zonedDateTime(fm.ingestedAt).toInstant,
content = fingerpostContent,
composerId = rs.stringOpt(fm.composerId),
composerSentBy = rs.stringOpt(fm.composerSentBy),
categoryCodes = categoryCodes,
highlight = rs
.stringOpt(fm.column("highlight"))
.filter(
_.contains("<mark>")
) // sometimes PG will return some unmarked text, and sometimes will return NULL - I can't figure out which and when
)
}