def apply()

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
    )
  }