diff options
author | Aleksandr <ognelisar@gmail.com> | 2017-11-14 17:43:21 +0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-14 17:43:21 +0700 |
commit | 01392b84a06a086bc49803204a109a04837dba5b (patch) | |
tree | 3d15b3e5063b7e602f4a0aba5aab6df941e04494 /src/main/scala/xyz/driver/pdsuidomain/entities/DocumentHistory.scala | |
parent | 29ee5de759374ceed9c856a51443a3f7c2cec029 (diff) | |
parent | 579951fa5fe2f518cb0281e6dcee346ae6dace74 (diff) | |
download | rest-query-01392b84a06a086bc49803204a109a04837dba5b.tar.gz rest-query-01392b84a06a086bc49803204a109a04837dba5b.tar.bz2 rest-query-01392b84a06a086bc49803204a109a04837dba5b.zip |
Merge pull request #62 from drivergroup/PDSUI-2345
PDSUI-2345 Store some more granular information in records/documents history
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/entities/DocumentHistory.scala')
-rw-r--r-- | src/main/scala/xyz/driver/pdsuidomain/entities/DocumentHistory.scala | 87 |
1 files changed, 49 insertions, 38 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/entities/DocumentHistory.scala b/src/main/scala/xyz/driver/pdsuidomain/entities/DocumentHistory.scala index 0a8480b..81fa240 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/entities/DocumentHistory.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/entities/DocumentHistory.scala @@ -6,7 +6,9 @@ import xyz.driver.core.auth.User import xyz.driver.pdsuicommon.domain._ import xyz.driver.pdsuicommon.logging._ import xyz.driver.pdsuicommon.utils.Utils -import xyz.driver.pdsuidomain.entities.DocumentHistory._ +import xyz.driver.pdsuidomain.entities.DocumentHistory.{Action, _} + +import scala.collection.immutable object DocumentHistory { @@ -21,20 +23,25 @@ object DocumentHistory { case object Extract extends State case object Review extends State case object Flag extends State + case object New extends State - val All: Set[State] = Set[State](Extract, Review, Flag) - - val fromString: PartialFunction[String, State] = { - case "Extract" => State.Extract - case "Review" => State.Review - case "Flag" => State.Flag + private implicit def stateToName(state: State): (State, String) = { + state -> state.getClass.getSimpleName } - def stateToString(x: State): String = x match { - case State.Extract => "Extract" - case State.Review => "Review" - case State.Flag => "Flag" - } + private val stateToName = immutable.Map[State, String]( + State.Extract, + State.Review, + State.Flag, + State.New + ) + + val All: Set[State] = stateToName.keySet + + val fromString: PartialFunction[String, State] = + for ((k, v) <- stateToName) yield (v, k) + + def stateToString: State => String = stateToName implicit def toPhiString(x: State): PhiString = Unsafe(Utils.getClassSimpleName(x.getClass)) @@ -49,38 +56,42 @@ object DocumentHistory { } object Action { - case object Start extends Action - case object Submit extends Action - case object Unassign extends Action - case object Resolve extends Action - case object Flag extends Action - case object Archive extends Action - - val All: Set[Action] = - Set[Action](Start, Submit, Unassign, Resolve, Flag, Archive) - - val fromString: PartialFunction[String, Action] = { - case "Start" => Action.Start - case "Submit" => Action.Submit - case "Unassign" => Action.Unassign - case "Resolve" => Action.Resolve - case "Flag" => Action.Flag - case "Archive" => Action.Archive + case object Start extends Action + case object Submit extends Action + case object Unassign extends Action + case object Resolve extends Action + case object Flag extends Action + case object Archive extends Action + case object PostedEvidence extends Action + case object CreatedDocument extends Action + case object ReadDocument extends Action + + private implicit def stateToName(action: Action): (Action, String) = { + action -> action.getClass.getSimpleName } - def actionToString(x: Action): String = x match { - case Action.Start => "Start" - case Action.Submit => "Submit" - case Action.Unassign => "Unassign" - case Action.Resolve => "Resolve" - case Action.Flag => "Flag" - case Action.Archive => "Archive" - } + private val actionToName = immutable.Map[Action, String]( + Action.Start, + Action.Submit, + Action.Unassign, + Action.Resolve, + Action.Flag, + Action.Archive, + Action.PostedEvidence, + Action.CreatedDocument, + Action.ReadDocument + ) + + val All: Set[Action] = actionToName.keySet + + val fromString: PartialFunction[String, Action] = + for ((k, v) <- actionToName) yield (v, k) + + def actionToString: Action => String = actionToName implicit def toPhiString(x: Action): PhiString = Unsafe(Utils.getClassSimpleName(x.getClass)) } - } final case class DocumentHistory(id: LongId[DocumentHistory], |