in src/main/scala/lang/CapiQueryString.scala [14:31]
def build(
program: QueryList
): String =
val (searchStrs, otherQueries) = program.exprs.partitionMap {
case q: CqlBinary => Left(strFromBinary(q))
case CqlField(key, Some(value)) =>
Right(s"${key.literal.getOrElse("")}=${value.literal.getOrElse("")}")
case CqlField(key, None) =>
throw new CapiCqlStringError(
s"The field '+$key' needs a value after it (e.g. +$key:tone/news)"
)
case QueryOutputModifier(key, Some(value)) =>
Right(s"${key.literal.getOrElse("")}=${value.literal.getOrElse("")}")
case QueryOutputModifier(key, None) =>
throw new CapiCqlStringError(
s"The output modifier '@$key' needs a value after it (e.g. +$key:all)"
)
}