aboutsummaryrefslogblamecommitdiff
path: root/src/main/scala/xyz/driver/common/utils/ServiceUtils.scala
blob: dd309fbcded4b300c1151c69beaa96d8e9774e34 (plain) (tree)































                                                                                                
package xyz.driver.common.utils

import xyz.driver.common.db.SearchFilterBinaryOperation.Eq
import xyz.driver.common.db.SearchFilterExpr
import xyz.driver.common.db.SearchFilterExpr.{Atom, Dimension}
import xyz.driver.common.logging._

import scala.util.{Failure, Success, Try}


object ServiceUtils extends PhiLogging {
  def findEqFilter(filter: SearchFilterExpr, fieldName: String): Option[SearchFilterExpr] = {
    findEqFilter(filter, Dimension(None, fieldName))
  }

  def findEqFilter(filter: SearchFilterExpr, dimension: Dimension): Option[SearchFilterExpr] = {
    filter.find {
      case Atom.Binary(dimension, Eq, _) => true
      case _ => false
    }
  }

  def convertIdInFilterToLong(value: AnyRef): Option[Long] = {
    Try(value.toString.toLong) match {
      case Success(id) =>
        Option(id)
      case Failure(e) =>
        logger.error(phi"Incorrect id format in filter $e")
        None
    }
  }
}