refactor(workflow): payload specification
This commit is contained in:
parent
094421ae5c
commit
5ff48d9b60
@ -1,5 +1,5 @@
|
|||||||
WorkflowDefinition
|
WorkflowDefinition
|
||||||
graph (WorkflowGraph UniWorX)
|
graph (WorkflowGraph FileId)
|
||||||
initiator (WorkflowRole UserId AuthDNF)
|
initiator (WorkflowRole UserId AuthDNF)
|
||||||
|
|
||||||
WorkflowInitiator
|
WorkflowInitiator
|
||||||
|
|||||||
@ -25,17 +25,21 @@ data WorkflowEdgePayload' = WEPText' | WEPBool'
|
|||||||
deriving (Eq, Ord, Enum, Show, Read, Data, Generic, Typeable)
|
deriving (Eq, Ord, Enum, Show, Read, Data, Generic, Typeable)
|
||||||
|
|
||||||
type WorkflowEdgePayloadLabel = CI Text
|
type WorkflowEdgePayloadLabel = CI Text
|
||||||
data WorkflowGraphEdge site = WGE
|
data WorkflowGraphEdge fileid = WGE
|
||||||
{ wgeActors :: () -- TODO
|
{ wgeActors :: () -- TODO
|
||||||
, wgeTarget :: WorkflowGraphNode
|
, wgeTarget :: WorkflowGraphNode
|
||||||
, wgeForm :: Map Text (WorkflowEdgePayload', FieldSettings site)
|
, wgeForm :: Map WorkflowEdgePayloadLabel (NonNull (Set (WorkflowEdgePayloadSpecification fileid)))
|
||||||
, wgePayload :: Map WorkflowEdgePayloadLabel WorkflowEdgePayload
|
|
||||||
}
|
}
|
||||||
|
data WorkflowEdgePayloadSpecification fileid = forall payload. (FromJSON payload, ToJSON payload) => WorkflowEdgePayloadSpecification (WorkflowEdgePayloadField payload fileid)
|
||||||
|
data WorkflowEdgePayloadField (payload :: *) fileid where
|
||||||
|
WorkflowEdgePayloadFieldText :: { wepftLabel :: Text, wepftPlaceholder :: Text, wepftTooltip :: Maybe Text, wepftDefault :: Maybe Text } -> WorkflowEdgePayloadField Text fileid
|
||||||
|
WorkflowEdgePayloadFieldNumber :: HasResolution prec => { wepfnLabel :: Text, wepfnPlaceholder :: Text, wepfnTooltip :: Maybe Text, wepfnDefault :: Maybe prec } -> WorkflowEdgePayloadField (Fixed prec) fileid
|
||||||
|
WorkflowEdgePayloadFieldFile :: { wepffLabel :: Text, wepffTooltip :: Maybe Text, wepffDefault :: Maybe fileid } -> WorkflowEdgePayloadField FileInfo fileid
|
||||||
-- deriveJSON defaultOptions ''WorkflowGraphEdge
|
-- deriveJSON defaultOptions ''WorkflowGraphEdge
|
||||||
|
|
||||||
data WorkflowGraph site = WG
|
data WorkflowGraph fileid = WG
|
||||||
{ wgNodes :: Set WorkflowGraphNode
|
{ wgNodes :: Set WorkflowGraphNode
|
||||||
, wgEdges :: Set (WorkflowGraphEdge site)
|
, wgEdges :: Set (WorkflowGraphEdge fileid)
|
||||||
}
|
}
|
||||||
-- deriveJSON defaultOptions ''WorkflowGraph
|
-- deriveJSON defaultOptions ''WorkflowGraph
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user