chore(workflow-types): tmp stub
This commit is contained in:
parent
263fee19f2
commit
99c0bfe8bf
@ -122,7 +122,7 @@ data WorkflowGraphEdge userid fileid = WGE
|
|||||||
}
|
}
|
||||||
|
|
||||||
instance (Show userid, Show fileid) => Show (WorkflowGraphEdge userid fileid) where
|
instance (Show userid, Show fileid) => Show (WorkflowGraphEdge userid fileid) where
|
||||||
show WGE{..} = "(wgeActors:" ++ show wgeActors ++ "; wgeTarget:" ++ show wgeTarget ++ "; wgeForm:" ++ show wgeForm ++ ")"
|
show WGE{..} = "WGE {wgeActors = " ++ show wgeActors ++ ", wgeTarget = " ++ show wgeTarget ++ ", wgeForm = " ++ show wgeForm ++ "}"
|
||||||
|
|
||||||
instance (Eq userid, Eq fileid) => Eq (WorkflowGraphEdge userid fileid) where
|
instance (Eq userid, Eq fileid) => Eq (WorkflowGraphEdge userid fileid) where
|
||||||
e1@WGE{} == e2@WGE{} = wgeActors e1 == wgeActors e2 && wgeTarget e1 == wgeTarget e2 && wgeForm e1 == wgeForm e2
|
e1@WGE{} == e2@WGE{} = wgeActors e1 == wgeActors e2 && wgeTarget e1 == wgeTarget e2 && wgeForm e1 == wgeForm e2
|
||||||
@ -151,21 +151,21 @@ data WorkflowInstanceScope' = WISGlobal' | WISTerm' | WISSchool' | WISCourse'
|
|||||||
|
|
||||||
instance (ToJSON userid) => ToJSON (WorkflowRole userid) where
|
instance (ToJSON userid) => ToJSON (WorkflowRole userid) where
|
||||||
toJSON (WorkflowRoleUser uid) = JSON.object
|
toJSON (WorkflowRoleUser uid) = JSON.object
|
||||||
[ "role" JSON..= ("user" :: Text)
|
[ "tag" JSON..= ("user" :: Text)
|
||||||
, "user" JSON..= uid
|
, "user" JSON..= uid
|
||||||
]
|
]
|
||||||
toJSON (WorkflowRoleAuthorized authDNF) = JSON.object
|
toJSON (WorkflowRoleAuthorized authDNF) = JSON.object
|
||||||
[ "role" JSON..= ("authorized" :: Text)
|
[ "tag" JSON..= ("authorized" :: Text)
|
||||||
, "authorized" JSON..= authDNF
|
, "authorized" JSON..= authDNF
|
||||||
]
|
]
|
||||||
toJSON (WorkflowRoleInitiator uid) = JSON.object
|
toJSON (WorkflowRoleInitiator uid) = JSON.object
|
||||||
[ "role" JSON..= ("initiator" :: Text)
|
[ "tag" JSON..= ("initiator" :: Text)
|
||||||
, "initiator" JSON..= uid
|
, "initiator" JSON..= uid
|
||||||
]
|
]
|
||||||
instance (FromJSON userid) => FromJSON (WorkflowRole userid) where
|
instance (FromJSON userid) => FromJSON (WorkflowRole userid) where
|
||||||
parseJSON = JSON.withObject "WorkflowRole" $ \o -> do
|
parseJSON = JSON.withObject "WorkflowRole" $ \o -> do
|
||||||
role <- (o JSON..: "role" :: Parser Text)
|
fieldTag <- (o JSON..: "tag" :: Parser Text)
|
||||||
case role of
|
case fieldTag of
|
||||||
"user" -> do
|
"user" -> do
|
||||||
uid <- o JSON..: "user"
|
uid <- o JSON..: "user"
|
||||||
return $ WorkflowRoleUser uid
|
return $ WorkflowRoleUser uid
|
||||||
@ -175,7 +175,7 @@ instance (FromJSON userid) => FromJSON (WorkflowRole userid) where
|
|||||||
"initiator" -> do
|
"initiator" -> do
|
||||||
iid <- o JSON..: "initiator"
|
iid <- o JSON..: "initiator"
|
||||||
return $ WorkflowRoleInitiator iid
|
return $ WorkflowRoleInitiator iid
|
||||||
_ -> terror $ "WorkflowRole parseJSON error: expected role (user|authorized|initiator), but got " <> role
|
_ -> terror $ "WorkflowRole parseJSON error: expected role (user|authorized|initiator), but got " <> fieldTag
|
||||||
|
|
||||||
instance (ToJSON userid, ToJSON fileid) => ToJSON (WorkflowGraph userid fileid) where
|
instance (ToJSON userid, ToJSON fileid) => ToJSON (WorkflowGraph userid fileid) where
|
||||||
toJSON WorkflowGraph{..} = JSON.object
|
toJSON WorkflowGraph{..} = JSON.object
|
||||||
@ -292,4 +292,4 @@ deriveJSON defaultOptions
|
|||||||
|
|
||||||
|
|
||||||
testGraph :: WorkflowGraph Text Text
|
testGraph :: WorkflowGraph Text Text
|
||||||
testGraph = WorkflowGraph $ Map.fromList [("node1", (WGN (WGNS "id" True (Just "someLabel")), Set.fromList [WGE (Set.fromList [WorkflowRoleUser "user-id", WorkflowRoleInitiator "init-user-id"]) "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 "init-user-id"]) "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]),("someboolandnumber", impureNonNull $ Set.fromList [WorkflowEdgePayloadSpecification $ WorkflowEdgePayloadFieldBool "bool-label" Nothing (Just True), WorkflowEdgePayloadSpecification $ WorkflowEdgePayloadFieldNumber "number-label" "number-placeholder" Nothing (Just singleRes) singleRes])])]))]
|
||||||
|
|||||||
17
src/Utils.hs
17
src/Utils.hs
@ -10,6 +10,7 @@ import qualified Data.Foldable as Fold
|
|||||||
import Data.Foldable as Utils (foldlM, foldrM)
|
import Data.Foldable as Utils (foldlM, foldrM)
|
||||||
import Data.Monoid (First, Sum(..))
|
import Data.Monoid (First, Sum(..))
|
||||||
import Data.Proxy
|
import Data.Proxy
|
||||||
|
import Data.Scientific (base10Exponent)
|
||||||
|
|
||||||
import Data.CaseInsensitive (CI)
|
import Data.CaseInsensitive (CI)
|
||||||
import qualified Data.CaseInsensitive as CI
|
import qualified Data.CaseInsensitive as CI
|
||||||
@ -350,18 +351,26 @@ rationalToFixed2 = rationalToFixed
|
|||||||
data SomeResolution = forall prec. HasResolution prec => SomeResolution (Proxy prec)
|
data SomeResolution = forall prec. HasResolution prec => SomeResolution (Proxy prec)
|
||||||
|
|
||||||
instance Eq SomeResolution where
|
instance Eq SomeResolution where
|
||||||
_ == _ = True
|
SomeResolution (_ :: Proxy p) == SomeResolution (_ :: Proxy p') = True
|
||||||
instance Ord SomeResolution where
|
instance Ord SomeResolution where
|
||||||
compare _ _ = EQ
|
compare _ _ = EQ
|
||||||
|
|
||||||
instance FromJSON SomeResolution where
|
|
||||||
parseJSON = parseJSON
|
|
||||||
instance ToJSON SomeResolution where
|
instance ToJSON SomeResolution where
|
||||||
toJSON = toJSON
|
toJSON (SomeResolution (_ :: Proxy prec)) = undefined
|
||||||
|
instance FromJSON SomeResolution where
|
||||||
|
parseJSON = Aeson.withScientific "SomeResolution" $ \s -> case base10Exponent s of
|
||||||
|
0 -> return $ SomeResolution (Proxy @E0)
|
||||||
|
1 -> return $ SomeResolution (Proxy @E1)
|
||||||
|
2 -> return $ SomeResolution (Proxy @E2)
|
||||||
|
3 -> return $ SomeResolution (Proxy @E3)
|
||||||
|
e -> terror $ "SomeResolution parseJSON error: expected exponent E(0|1|2|3), but got " <> tshow e
|
||||||
|
|
||||||
someResolutions :: [SomeResolution]
|
someResolutions :: [SomeResolution]
|
||||||
someResolutions = [ SomeResolution (Proxy @E0), SomeResolution (Proxy @E1), SomeResolution (Proxy @E2), SomeResolution (Proxy @E3) ]
|
someResolutions = [ SomeResolution (Proxy @E0), SomeResolution (Proxy @E1), SomeResolution (Proxy @E2), SomeResolution (Proxy @E3) ]
|
||||||
|
|
||||||
|
singleRes :: SomeResolution
|
||||||
|
singleRes = SomeResolution (Proxy @E2)
|
||||||
|
|
||||||
|
|
||||||
----------
|
----------
|
||||||
-- Bool --
|
-- Bool --
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user