fix(workflow): add missing optional
This commit is contained in:
parent
e1261761a2
commit
8608e83ef8
@ -133,7 +133,7 @@ instance (Ord fileid, Ord userid) => Ord (WorkflowEdgePayloadSpecification filei
|
||||
compare (WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldUser{}) _ = LT
|
||||
|
||||
|
||||
type WorkflowPayload userid fileid = forall payload. Map WorkflowEdgePayloadLabel (Seq (WorkflowEdgePayload userid fileid payload, Maybe userid, UTCTime))
|
||||
data WorkflowPayload userid fileid = forall payload. Map WorkflowEdgePayloadLabel (Seq (WorkflowEdgePayload userid fileid payload), Maybe userid, UTCTime)
|
||||
|
||||
|
||||
data WorkflowGraphEdge userid fileid = WGE
|
||||
@ -188,7 +188,7 @@ instance (FromJSON userid) => FromJSON (WorkflowRole userid) where
|
||||
"authorized" -> do
|
||||
adnf <- o JSON..: "authorized"
|
||||
return $ WorkflowRoleAuthorized adnf
|
||||
"initiator" -> return $ WorkflowRoleInitiator
|
||||
"initiator" -> return WorkflowRoleInitiator
|
||||
_ -> terror $ "WorkflowRole parseJSON error: expected role (user|authorized|initiator), but got " <> fieldTag
|
||||
|
||||
instance (ToJSON userid, ToJSON fileid, Ord userid) => ToJSON (WorkflowGraph userid fileid) where
|
||||
@ -226,6 +226,7 @@ instance (ToJSON fileid, ToJSON userid) => ToJSON (WorkflowEdgePayloadSpecificat
|
||||
, "placeholder" JSON..= wepftPlaceholder
|
||||
, "tooltip" JSON..= wepftTooltip
|
||||
, "default" JSON..= wepftDefault
|
||||
, "optional" JSON..= wepftOptional
|
||||
]
|
||||
toJSON (WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldNumber{..}) = JSON.object
|
||||
[ "tag" JSON..= ("number" :: Text)
|
||||
@ -236,6 +237,7 @@ instance (ToJSON fileid, ToJSON userid) => ToJSON (WorkflowEdgePayloadSpecificat
|
||||
, "min" JSON..= wepfnMin
|
||||
, "max" JSON..= wepfnMax
|
||||
, "step" JSON..= wepfnStep
|
||||
, "optional" JSON..= wepfnOptional
|
||||
]
|
||||
toJSON (WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldBool{..}) = JSON.object
|
||||
[ "tag" JSON..= ("bool" :: Text)
|
||||
@ -248,12 +250,14 @@ instance (ToJSON fileid, ToJSON userid) => ToJSON (WorkflowEdgePayloadSpecificat
|
||||
, "label" JSON..= wepffLabel
|
||||
, "tooltip" JSON..= wepffTooltip
|
||||
, "default" JSON..= wepffDefault
|
||||
, "optional" JSON..= wepffOptional
|
||||
]
|
||||
toJSON (WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldUser{..}) = JSON.object
|
||||
[ "tag" JSON..= ("user" :: Text)
|
||||
, "label" JSON..= wepfuLabel
|
||||
, "tooltip" JSON..= wepfuTooltip
|
||||
, "default" JSON..= wepfuDefault
|
||||
, "optional" JSON..= wepfuOptional
|
||||
]
|
||||
instance (FromJSON fileid, FromJSON userid) => FromJSON (WorkflowEdgePayloadSpecification fileid userid) where
|
||||
parseJSON = JSON.withObject "WorkflowEdgePayloadSpecification" $ \o -> do
|
||||
@ -264,6 +268,7 @@ instance (FromJSON fileid, FromJSON userid) => FromJSON (WorkflowEdgePayloadSpec
|
||||
wepftPlaceholder <- o JSON..: "placeholder"
|
||||
wepftTooltip <- o JSON..:? "tooltip"
|
||||
wepftDefault <- o JSON..:? "default"
|
||||
wepftOptional <- o JSON..:? "optional"
|
||||
return $ WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldText{..}
|
||||
"number" -> do
|
||||
wepfnLabel <- o JSON..: "label"
|
||||
@ -273,6 +278,7 @@ instance (FromJSON fileid, FromJSON userid) => FromJSON (WorkflowEdgePayloadSpec
|
||||
wepfnMin <- o JSON..:? "min"
|
||||
wepfnMax <- o JSON..:? "max"
|
||||
wepfnStep <- o JSON..: "step"
|
||||
wepfnOptional <- o JSON..:? "optional"
|
||||
return $ WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldNumber{..}
|
||||
"bool" -> do
|
||||
wepfbLabel <- o JSON..: "label"
|
||||
@ -283,11 +289,13 @@ instance (FromJSON fileid, FromJSON userid) => FromJSON (WorkflowEdgePayloadSpec
|
||||
wepffLabel <- o JSON..: "label"
|
||||
wepffTooltip <- o JSON..:? "tooltip"
|
||||
wepffDefault <- (o JSON..:? "default" :: Parser (Maybe fileid))
|
||||
wepffOptional <- o JSON..:? "optional"
|
||||
return $ WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldFile{..}
|
||||
"user" -> do
|
||||
wepfuLabel <- o JSON..: "label"
|
||||
wepfuTooltip <- o JSON..:? "tooltip"
|
||||
wepfuDefault <- (o JSON..:? "default" :: Parser (Maybe userid))
|
||||
wepfuOptional <- o JSON..:? "optional"
|
||||
return $ WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldUser{..}
|
||||
_ -> terror $ "WorkflowEdgePayloadSpecification parseJSON error: expected field tag (text|number|bool|file|user), but got " <> fieldTag
|
||||
|
||||
@ -326,4 +334,4 @@ testGraph = WorkflowGraph $ Map.fromList [("node1", (WGN (WGNS "id" True (Just "
|
||||
--testGraph = WorkflowGraph $ Map.fromList [("node1", (WGN (WGNS "id" True (Just "someLabel")), Set.fromList [WGE (Set.fromList [WorkflowRoleUser "user-id", WorkflowRoleInitiator]) "node1" (Map.fromList [("sometext", impureNonNull $ Set.fromList [WorkflowEdgePayloadSpecification $ WorkflowEdgePayloadFieldText "text-label" "text-placeholder" (Just "text-tooltip") (Just "text-default")]),("someuser", impureNonNull $ Set.fromList [WorkflowEdgePayloadSpecification $ WorkflowEdgePayloadFieldUser "user-label" Nothing Nothing]),("somebool", impureNonNull $ Set.fromList [WorkflowEdgePayloadSpecification $ WorkflowEdgePayloadFieldBool "bool-label" Nothing (Just True)])])]))]
|
||||
|
||||
--testPayload :: WorkflowPayload Text Text
|
||||
testPayload = Map.fromList [("edge-payload-label", (Seq.singleton (WEPText "hello world!"), Nothing, UTCTime (ModifiedJulianDay 58946) 57250))]
|
||||
testPayload = Map.fromList [("edge-payload-label" :: WorkflowEdgePayloadLabel, (Seq.singleton (WEPText "hello world!"), Just "actor-user-id" :: Maybe Text, UTCTime (ModifiedJulianDay 58946) 57250))]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user