You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
702 B
22 lines
702 B
package com.xsn.explorer.parsers
|
|
|
|
import com.alexitc.playsonify.core.ApplicationResult
|
|
import com.alexitc.playsonify.models.ordering.{OrderingCondition, OrderingError}
|
|
import org.scalactic.{One, Or}
|
|
|
|
class OrderingConditionParser {
|
|
|
|
def parse(
|
|
unsafeOrderingCondition: String): Option[OrderingCondition] = unsafeOrderingCondition.toLowerCase match {
|
|
|
|
case "asc" => Some(OrderingCondition.AscendingOrder)
|
|
case "desc" => Some(OrderingCondition.DescendingOrder)
|
|
case _ => None
|
|
}
|
|
|
|
def parseReuslt(unsafeOrderingCondition: String): ApplicationResult[OrderingCondition] = {
|
|
|
|
val maybe = parse(unsafeOrderingCondition)
|
|
Or.from(maybe, One(OrderingError.InvalidCondition))
|
|
}
|
|
}
|
|
|