in newswires/app/controllers/QueryController.scala [29:80]
private def paramToList[T](
request: Request[T],
paramName: String
): List[String] =
request.getQueryString(paramName).map(_.split(",").toList).getOrElse(Nil)
def query(
maybeFreeTextQuery: Option[String],
maybeKeywords: Option[String],
suppliers: List[String],
categoryCode: List[String],
categoryCodeExcl: List[String],
maybeStart: Option[String],
maybeEnd: Option[String],
maybeBeforeId: Option[Int],
maybeSinceId: Option[Int]
): Action[AnyContent] = apiAuthAction { request: UserRequest[AnyContent] =>
val maybePreset =
request.getQueryString("preset").flatMap(SearchPresets.get)
val suppliersToExcludeByDefault =
if (FeatureSwitchProvider.ShowGuSuppliers.isOn) Nil
else List("GuReuters", "GuAP")
val queryParams = SearchParams(
text = maybeFreeTextQuery,
start = maybeStart,
end = maybeEnd,
keywordIncl = maybeKeywords.map(_.split(",").toList).getOrElse(Nil),
keywordExcl = paramToList(request, "keywordsExcl"),
suppliersIncl = suppliers,
suppliersExcl = request.queryString
.get("supplierExcl")
.map(_.toList)
.getOrElse(Nil) ++ suppliersToExcludeByDefault,
categoryCodesIncl = categoryCode,
categoryCodesExcl = categoryCodeExcl
)
Ok(
Json.toJson(
FingerpostWireEntry.query(
searchParams = queryParams,
savedSearchParamList = maybePreset.getOrElse(Nil),
maybeTextSearch = maybeFreeTextQuery,
maybeBeforeId = maybeBeforeId,
maybeSinceId = maybeSinceId,
pageSize = 30
)
)
)
}