in newswires/app/db/FingerpostWireEntry.scala [302:337]
private def buildWhereClauseParts(
searchParamList: List[SearchParams],
maybeBeforeId: Option[Int],
maybeSinceId: Option[Int]
) = {
val dataOnlyWhereClauses = List(
maybeBeforeId.map(beforeId =>
sqls"${FingerpostWireEntry.syn.id} < $beforeId"
),
maybeSinceId.map(sinceId =>
sqls"${FingerpostWireEntry.syn.id} > $sinceId"
)
).flatten
val commonWhereClauses = searchParamList.flatMap(searchParams => {
val whereClause = processSearchParams(searchParams)
if (whereClause.nonEmpty) {
Some(
sqls.joinWithAnd(
dataOnlyWhereClauses ++ whereClause: _*
)
)
} else {
None
}
})
commonWhereClauses match {
case Nil => None
case wherePart :: Nil =>
Some(wherePart)
case whereParts =>
Some(sqls.joinWithOr(whereParts.map(clause => sqls"($clause)"): _*))
}
}