2 changed files with 38 additions and 0 deletions
@ -0,0 +1,23 @@ |
|||
package com.xsn.explorer.models.fields |
|||
|
|||
import com.xsn.explorer.data.anorm.interpreters.ColumnNameResolver |
|||
|
|||
sealed abstract class BalanceField(val string: String) |
|||
|
|||
object BalanceField { |
|||
|
|||
case object Available extends BalanceField("available") |
|||
case object Received extends BalanceField("received") |
|||
case object Spent extends BalanceField("spent") |
|||
case object Address extends BalanceField("address") |
|||
|
|||
def from(string: String): Option[BalanceField] = string match { |
|||
case Available.string => Some(Available) |
|||
case Received.string => Some(Received) |
|||
case Spent.string => Some(Spent) |
|||
case Address.string => Some(Address) |
|||
case _ => None |
|||
} |
|||
|
|||
implicit val columnNameResolver: ColumnNameResolver[BalanceField] = (field) => field.string |
|||
} |
@ -0,0 +1,15 @@ |
|||
package com.xsn.explorer.parsers |
|||
|
|||
import com.xsn.explorer.models.base.OrderingCondition |
|||
import com.xsn.explorer.models.fields.BalanceField |
|||
|
|||
class BalanceOrderingParser extends FieldOrderingParser[BalanceField] { |
|||
|
|||
override protected val defaultField = BalanceField.Available |
|||
|
|||
override protected val defaultOrderingCondition: OrderingCondition = OrderingCondition.DescendingOrder |
|||
|
|||
override protected def parseField(unsafeField: String): Option[BalanceField] = { |
|||
BalanceField.from(unsafeField) |
|||
} |
|||
} |
Loading…
Reference in new issue