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.
23 lines
702 B
23 lines
702 B
6 years ago
|
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))
|
||
|
}
|
||
|
}
|