in newswires/app/db/FingerpostWireEntry.scala [141:160]
private def clamp(low: Int, x: Int, high: Int): Int =
math.min(math.max(x, low), high)
def get(
id: Int,
maybeFreeTextQuery: Option[String]
): Option[FingerpostWireEntry] = DB readOnly { implicit session =>
val highlightsClause = maybeFreeTextQuery match {
case Some(query) =>
sqls", ts_headline('english', ${syn.content}->>'body_text', websearch_to_tsquery('english', $query), 'HighlightAll=true, StartSel=<mark>, StopSel=</mark>') AS ${syn.resultName.highlight}"
case None => sqls", '' AS ${syn.resultName.highlight}"
}
sql"""| SELECT $selectAllStatement $highlightsClause
| FROM ${FingerpostWireEntry as syn}
| WHERE ${FingerpostWireEntry.syn.id} = $id
|""".stripMargin
.map(FingerpostWireEntry(syn.resultName))
.single()
.apply()
}