app/helpers/SearchTermHelper.scala (27 lines of code) (raw):
package helpers
import com.om.mxs.client.japi.{Constants, SearchTerm}
import scala.util.matching.Regex
object SearchTermHelper {
private val projectIdValidators = Array(
"^\\d+$".r,
"^\\w{2}-\\d+".r
)
def projectIdQuery(forProject:String, onlyRushes:Boolean):Option[ContentSearchBuilder] = {
def testValidator(validator:Regex, remaining:Array[Regex]):Option[ContentSearchBuilder] = {
forProject match {
case validator()=>
val baseSearch = ContentSearchBuilder("")
.withTerm("GNM_PROJECT_ID", "\"" + forProject + "\"", SearchCombiner.AND)
val typeSearch = if(onlyRushes) baseSearch.withTerm("GNM_TYPE", "rushes", SearchCombiner.AND) else baseSearch
Some(typeSearch)
case _=>
if(remaining.nonEmpty) {
testValidator(remaining.head, remaining.tail)
} else {
None
}
}
}
testValidator(projectIdValidators.head, projectIdValidators.tail)
}
}