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
|
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
|
data WorkflowGraphEdge userid fileid = WGE
|
||||||
@ -188,7 +188,7 @@ instance (FromJSON userid) => FromJSON (WorkflowRole userid) where
|
|||||||
"authorized" -> do
|
"authorized" -> do
|
||||||
adnf <- o JSON..: "authorized"
|
adnf <- o JSON..: "authorized"
|
||||||
return $ WorkflowRoleAuthorized adnf
|
return $ WorkflowRoleAuthorized adnf
|
||||||
"initiator" -> return $ WorkflowRoleInitiator
|
"initiator" -> return WorkflowRoleInitiator
|
||||||
_ -> terror $ "WorkflowRole parseJSON error: expected role (user|authorized|initiator), but got " <> fieldTag
|
_ -> terror $ "WorkflowRole parseJSON error: expected role (user|authorized|initiator), but got " <> fieldTag
|
||||||
|
|
||||||
instance (ToJSON userid, ToJSON fileid, Ord userid) => ToJSON (WorkflowGraph userid fileid) where
|
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
|
, "placeholder" JSON..= wepftPlaceholder
|
||||||
, "tooltip" JSON..= wepftTooltip
|
, "tooltip" JSON..= wepftTooltip
|
||||||
, "default" JSON..= wepftDefault
|
, "default" JSON..= wepftDefault
|
||||||
|
, "optional" JSON..= wepftOptional
|
||||||
]
|
]
|
||||||
toJSON (WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldNumber{..}) = JSON.object
|
toJSON (WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldNumber{..}) = JSON.object
|
||||||
[ "tag" JSON..= ("number" :: Text)
|
[ "tag" JSON..= ("number" :: Text)
|
||||||
@ -236,6 +237,7 @@ instance (ToJSON fileid, ToJSON userid) => ToJSON (WorkflowEdgePayloadSpecificat
|
|||||||
, "min" JSON..= wepfnMin
|
, "min" JSON..= wepfnMin
|
||||||
, "max" JSON..= wepfnMax
|
, "max" JSON..= wepfnMax
|
||||||
, "step" JSON..= wepfnStep
|
, "step" JSON..= wepfnStep
|
||||||
|
, "optional" JSON..= wepfnOptional
|
||||||
]
|
]
|
||||||
toJSON (WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldBool{..}) = JSON.object
|
toJSON (WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldBool{..}) = JSON.object
|
||||||
[ "tag" JSON..= ("bool" :: Text)
|
[ "tag" JSON..= ("bool" :: Text)
|
||||||
@ -248,12 +250,14 @@ instance (ToJSON fileid, ToJSON userid) => ToJSON (WorkflowEdgePayloadSpecificat
|
|||||||
, "label" JSON..= wepffLabel
|
, "label" JSON..= wepffLabel
|
||||||
, "tooltip" JSON..= wepffTooltip
|
, "tooltip" JSON..= wepffTooltip
|
||||||
, "default" JSON..= wepffDefault
|
, "default" JSON..= wepffDefault
|
||||||
|
, "optional" JSON..= wepffOptional
|
||||||
]
|
]
|
||||||
toJSON (WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldUser{..}) = JSON.object
|
toJSON (WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldUser{..}) = JSON.object
|
||||||
[ "tag" JSON..= ("user" :: Text)
|
[ "tag" JSON..= ("user" :: Text)
|
||||||
, "label" JSON..= wepfuLabel
|
, "label" JSON..= wepfuLabel
|
||||||
, "tooltip" JSON..= wepfuTooltip
|
, "tooltip" JSON..= wepfuTooltip
|
||||||
, "default" JSON..= wepfuDefault
|
, "default" JSON..= wepfuDefault
|
||||||
|
, "optional" JSON..= wepfuOptional
|
||||||
]
|
]
|
||||||
instance (FromJSON fileid, FromJSON userid) => FromJSON (WorkflowEdgePayloadSpecification fileid userid) where
|
instance (FromJSON fileid, FromJSON userid) => FromJSON (WorkflowEdgePayloadSpecification fileid userid) where
|
||||||
parseJSON = JSON.withObject "WorkflowEdgePayloadSpecification" $ \o -> do
|
parseJSON = JSON.withObject "WorkflowEdgePayloadSpecification" $ \o -> do
|
||||||
@ -264,6 +268,7 @@ instance (FromJSON fileid, FromJSON userid) => FromJSON (WorkflowEdgePayloadSpec
|
|||||||
wepftPlaceholder <- o JSON..: "placeholder"
|
wepftPlaceholder <- o JSON..: "placeholder"
|
||||||
wepftTooltip <- o JSON..:? "tooltip"
|
wepftTooltip <- o JSON..:? "tooltip"
|
||||||
wepftDefault <- o JSON..:? "default"
|
wepftDefault <- o JSON..:? "default"
|
||||||
|
wepftOptional <- o JSON..:? "optional"
|
||||||
return $ WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldText{..}
|
return $ WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldText{..}
|
||||||
"number" -> do
|
"number" -> do
|
||||||
wepfnLabel <- o JSON..: "label"
|
wepfnLabel <- o JSON..: "label"
|
||||||
@ -273,6 +278,7 @@ instance (FromJSON fileid, FromJSON userid) => FromJSON (WorkflowEdgePayloadSpec
|
|||||||
wepfnMin <- o JSON..:? "min"
|
wepfnMin <- o JSON..:? "min"
|
||||||
wepfnMax <- o JSON..:? "max"
|
wepfnMax <- o JSON..:? "max"
|
||||||
wepfnStep <- o JSON..: "step"
|
wepfnStep <- o JSON..: "step"
|
||||||
|
wepfnOptional <- o JSON..:? "optional"
|
||||||
return $ WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldNumber{..}
|
return $ WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldNumber{..}
|
||||||
"bool" -> do
|
"bool" -> do
|
||||||
wepfbLabel <- o JSON..: "label"
|
wepfbLabel <- o JSON..: "label"
|
||||||
@ -283,11 +289,13 @@ instance (FromJSON fileid, FromJSON userid) => FromJSON (WorkflowEdgePayloadSpec
|
|||||||
wepffLabel <- o JSON..: "label"
|
wepffLabel <- o JSON..: "label"
|
||||||
wepffTooltip <- o JSON..:? "tooltip"
|
wepffTooltip <- o JSON..:? "tooltip"
|
||||||
wepffDefault <- (o JSON..:? "default" :: Parser (Maybe fileid))
|
wepffDefault <- (o JSON..:? "default" :: Parser (Maybe fileid))
|
||||||
|
wepffOptional <- o JSON..:? "optional"
|
||||||
return $ WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldFile{..}
|
return $ WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldFile{..}
|
||||||
"user" -> do
|
"user" -> do
|
||||||
wepfuLabel <- o JSON..: "label"
|
wepfuLabel <- o JSON..: "label"
|
||||||
wepfuTooltip <- o JSON..:? "tooltip"
|
wepfuTooltip <- o JSON..:? "tooltip"
|
||||||
wepfuDefault <- (o JSON..:? "default" :: Parser (Maybe userid))
|
wepfuDefault <- (o JSON..:? "default" :: Parser (Maybe userid))
|
||||||
|
wepfuOptional <- o JSON..:? "optional"
|
||||||
return $ WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldUser{..}
|
return $ WorkflowEdgePayloadSpecification WorkflowEdgePayloadFieldUser{..}
|
||||||
_ -> terror $ "WorkflowEdgePayloadSpecification parseJSON error: expected field tag (text|number|bool|file|user), but got " <> fieldTag
|
_ -> 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)])])]))]
|
--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 :: 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))]
|
||||||
|
|||||||
Reference in New Issue
Block a user