refactor(workflows): rename payload record fields

This commit is contained in:
Sarah Vaupel 2020-04-08 10:37:22 +02:00 committed by Gregor Kleen
parent 44b3b5faee
commit 8b67481228

View File

@ -74,42 +74,42 @@ type WorkflowPayloadLabel = CI Text
data WorkflowPayloadField fileid userid (payload :: *) where
WorkflowPayloadFieldText :: { wepftLabel :: Text
, wepftPlaceholder :: Text
, wepftTooltip :: Maybe Text
, wepftDefault :: Maybe Text
, wepftOptional :: Maybe Bool
} -> WorkflowPayloadField fileid userid Text
WorkflowPayloadFieldNumber :: { wepfnLabel :: Text
, wepfnPlaceholder :: Text
, wepfnTooltip :: Maybe Text
, wepfnDefault :: Maybe Scientific
, wepfnMin :: Maybe Scientific
, wepfnMax :: Maybe Scientific
, wepfnStep :: Scientific
, wepfnOptional :: Maybe Bool
} -> WorkflowPayloadField fileid userid Scientific
WorkflowPayloadFieldBool :: { wepfbLabel :: Text
, wepfbTooltip :: Maybe Text
, wepfbDefault :: Maybe Bool
} -> WorkflowPayloadField fileid userid Bool
WorkflowPayloadFieldFile :: { wepffLabel :: Text
, wepffTooltip :: Maybe Text
, wepffDefault :: Maybe fileid
, wepffOptional :: Maybe Bool
} -> WorkflowPayloadField fileid userid FileInfo
WorkflowPayloadFieldUser :: { wepfuLabel :: Text
, wepfuTooltip :: Maybe Text
, wepfuDefault :: Maybe userid
, wepfuOptional :: Maybe Bool
} -> WorkflowPayloadField fileid userid userid
WorkflowPayloadFieldText :: { wpftLabel :: Text
, wpftPlaceholder :: Text
, wpftTooltip :: Maybe Text
, wpftDefault :: Maybe Text
, wpftOptional :: Maybe Bool
} -> WorkflowPayloadField fileid userid Text
WorkflowPayloadFieldNumber :: { wpfnLabel :: Text
, wpfnPlaceholder :: Text
, wpfnTooltip :: Maybe Text
, wpfnDefault :: Maybe Scientific
, wpfnMin :: Maybe Scientific
, wpfnMax :: Maybe Scientific
, wpfnStep :: Scientific
, wpfnOptional :: Maybe Bool
} -> WorkflowPayloadField fileid userid Scientific
WorkflowPayloadFieldBool :: { wpfbLabel :: Text
, wpfbTooltip :: Maybe Text
, wpfbDefault :: Maybe Bool
} -> WorkflowPayloadField fileid userid Bool
WorkflowPayloadFieldFile :: { wpffLabel :: Text
, wpffTooltip :: Maybe Text
, wpffDefault :: Maybe fileid
, wpffOptional :: Maybe Bool
} -> WorkflowPayloadField fileid userid FileInfo
WorkflowPayloadFieldUser :: { wpfuLabel :: Text
, wpfuTooltip :: Maybe Text
, wpfuDefault :: Maybe userid
, wpfuOptional :: Maybe Bool
} -> WorkflowPayloadField fileid userid userid
instance (Show fileid, Show userid) => Show (WorkflowPayloadField fileid userid payload) where
show (WorkflowPayloadFieldText{..} ) = "TextField{label = " <> show wepftLabel <> ", placeholder = " <> show wepftPlaceholder <> ", tooltip = " <> show wepftTooltip <> ", default = " <> show wepftDefault <> ", optional = " <> show wepftOptional <> "}"
show (WorkflowPayloadFieldNumber{..}) = "NumberField{label = " <> show wepfnLabel <> ", placeholder = " <> show wepfnPlaceholder <> ", tooltip = " <> show wepfnTooltip <> ", default = " <> show wepfnDefault <> ", min = " <> show wepfnMin <> ", max = " <> show wepfnMax <> ", step = " <> show wepfnStep <> ", optional = " <> show wepfnOptional <> "}"
show (WorkflowPayloadFieldBool{..} ) = "BoolField{label = " <> show wepfbLabel <> ", tooltip = " <> show wepfbTooltip <> ", default = " <> show wepfbDefault <> "}"
show (WorkflowPayloadFieldFile{..} ) = "FileField{label = " <> show wepffLabel <> ", tooltip = " <> show wepffTooltip <> ", default = " <> show wepffDefault <> ", optional = " <> show wepffOptional <> "}"
show (WorkflowPayloadFieldUser{..} ) = "UserField{label = " <> show wepfuLabel <> ", tooltip = " <> show wepfuTooltip <> ", default = " <> show wepfuDefault <> ", optional = " <> show wepfuOptional <> "}"
show (WorkflowPayloadFieldText{..} ) = "TextField{label = " <> show wpftLabel <> ", placeholder = " <> show wpftPlaceholder <> ", tooltip = " <> show wpftTooltip <> ", default = " <> show wpftDefault <> ", optional = " <> show wpftOptional <> "}"
show (WorkflowPayloadFieldNumber{..}) = "NumberField{label = " <> show wpfnLabel <> ", placeholder = " <> show wpfnPlaceholder <> ", tooltip = " <> show wpfnTooltip <> ", default = " <> show wpfnDefault <> ", min = " <> show wpfnMin <> ", max = " <> show wpfnMax <> ", step = " <> show wpfnStep <> ", optional = " <> show wpfnOptional <> "}"
show (WorkflowPayloadFieldBool{..} ) = "BoolField{label = " <> show wpfbLabel <> ", tooltip = " <> show wpfbTooltip <> ", default = " <> show wpfbDefault <> "}"
show (WorkflowPayloadFieldFile{..} ) = "FileField{label = " <> show wpffLabel <> ", tooltip = " <> show wpffTooltip <> ", default = " <> show wpffDefault <> ", optional = " <> show wpffOptional <> "}"
show (WorkflowPayloadFieldUser{..} ) = "UserField{label = " <> show wpfuLabel <> ", tooltip = " <> show wpfuTooltip <> ", default = " <> show wpfuDefault <> ", optional = " <> show wpfuOptional <> "}"
@ -119,19 +119,19 @@ instance (Show fileid, Show userid) => Show (WorkflowPayloadSpec fileid userid)
show (WorkflowPayloadSpec payloadField) = show payloadField
instance (Eq fileid, Eq userid) => Eq (WorkflowPayloadSpec fileid userid) where
(WorkflowPayloadSpec f1@WorkflowPayloadFieldText{}) == (WorkflowPayloadSpec f2@WorkflowPayloadFieldText{}) = wepftLabel f1 == wepftLabel f2 && wepftPlaceholder f1 == wepftPlaceholder f2 && wepftTooltip f1 == wepftTooltip f2 && wepftDefault f1 == wepftDefault f2 && wepftOptional f1 == wepftOptional f2
(WorkflowPayloadSpec f1@WorkflowPayloadFieldNumber{}) == (WorkflowPayloadSpec f2@WorkflowPayloadFieldNumber{}) = wepfnLabel f1 == wepfnLabel f2 && wepfnPlaceholder f1 == wepfnPlaceholder f2 && wepfnTooltip f1 == wepfnTooltip f2 && wepfnDefault f1 == wepfnDefault f2 && wepfnOptional f1 == wepfnOptional f2
(WorkflowPayloadSpec f1@WorkflowPayloadFieldBool{}) == (WorkflowPayloadSpec f2@WorkflowPayloadFieldBool{}) = wepfbLabel f1 == wepfbLabel f2 && wepfbTooltip f1 == wepfbTooltip f2 && wepfbDefault f1 == wepfbDefault f2
(WorkflowPayloadSpec f1@WorkflowPayloadFieldFile{}) == (WorkflowPayloadSpec f2@WorkflowPayloadFieldFile{}) = wepffLabel f1 == wepffLabel f2 && wepffTooltip f1 == wepffTooltip f2 && wepffDefault f1 == wepffDefault f2 && wepffOptional f1 == wepffOptional f2
(WorkflowPayloadSpec f1@WorkflowPayloadFieldUser{}) == (WorkflowPayloadSpec f2@WorkflowPayloadFieldUser{}) = wepfuLabel f1 == wepfuLabel f2 && wepfuTooltip f1 == wepfuTooltip f2 && wepfuDefault f1 == wepfuDefault f2 && wepfuOptional f1 == wepfuOptional f2
(WorkflowPayloadSpec f1@WorkflowPayloadFieldText{}) == (WorkflowPayloadSpec f2@WorkflowPayloadFieldText{}) = wpftLabel f1 == wpftLabel f2 && wpftPlaceholder f1 == wpftPlaceholder f2 && wpftTooltip f1 == wpftTooltip f2 && wpftDefault f1 == wpftDefault f2 && wpftOptional f1 == wpftOptional f2
(WorkflowPayloadSpec f1@WorkflowPayloadFieldNumber{}) == (WorkflowPayloadSpec f2@WorkflowPayloadFieldNumber{}) = wpfnLabel f1 == wpfnLabel f2 && wpfnPlaceholder f1 == wpfnPlaceholder f2 && wpfnTooltip f1 == wpfnTooltip f2 && wpfnDefault f1 == wpfnDefault f2 && wpfnOptional f1 == wpfnOptional f2
(WorkflowPayloadSpec f1@WorkflowPayloadFieldBool{}) == (WorkflowPayloadSpec f2@WorkflowPayloadFieldBool{}) = wpfbLabel f1 == wpfbLabel f2 && wpfbTooltip f1 == wpfbTooltip f2 && wpfbDefault f1 == wpfbDefault f2
(WorkflowPayloadSpec f1@WorkflowPayloadFieldFile{}) == (WorkflowPayloadSpec f2@WorkflowPayloadFieldFile{}) = wpffLabel f1 == wpffLabel f2 && wpffTooltip f1 == wpffTooltip f2 && wpffDefault f1 == wpffDefault f2 && wpffOptional f1 == wpffOptional f2
(WorkflowPayloadSpec f1@WorkflowPayloadFieldUser{}) == (WorkflowPayloadSpec f2@WorkflowPayloadFieldUser{}) = wpfuLabel f1 == wpfuLabel f2 && wpfuTooltip f1 == wpfuTooltip f2 && wpfuDefault f1 == wpfuDefault f2 && wpfuOptional f1 == wpfuOptional f2
_ == _ = False
instance (Ord fileid, Ord userid) => Ord (WorkflowPayloadSpec fileid userid) where
compare (WorkflowPayloadSpec f1@WorkflowPayloadFieldText{}) (WorkflowPayloadSpec f2@WorkflowPayloadFieldText{}) = mconcat [comparing wepftLabel, comparing wepftPlaceholder, comparing wepftTooltip, comparing wepftDefault, comparing wepftOptional] f1 f2
compare (WorkflowPayloadSpec f1@WorkflowPayloadFieldNumber{}) (WorkflowPayloadSpec f2@WorkflowPayloadFieldNumber{}) = mconcat [comparing wepfnLabel, comparing wepfnPlaceholder, comparing wepfnTooltip, comparing wepfnDefault, comparing wepfnMin, comparing wepfnMax, comparing wepfnStep, comparing wepfnOptional] f1 f2
compare (WorkflowPayloadSpec f1@WorkflowPayloadFieldBool{}) (WorkflowPayloadSpec f2@WorkflowPayloadFieldBool{}) = mconcat [comparing wepfbLabel, comparing wepfbTooltip, comparing wepfbDefault] f1 f2
compare (WorkflowPayloadSpec f1@WorkflowPayloadFieldFile{}) (WorkflowPayloadSpec f2@WorkflowPayloadFieldFile{}) = mconcat [comparing wepffLabel, comparing wepffTooltip, comparing wepffDefault, comparing wepffOptional] f1 f2
compare (WorkflowPayloadSpec f1@WorkflowPayloadFieldUser{}) (WorkflowPayloadSpec f2@WorkflowPayloadFieldUser{}) = mconcat [comparing wepfuLabel, comparing wepfuTooltip, comparing wepfuDefault, comparing wepfuOptional] f1 f2
compare (WorkflowPayloadSpec f1@WorkflowPayloadFieldText{}) (WorkflowPayloadSpec f2@WorkflowPayloadFieldText{}) = mconcat [comparing wpftLabel, comparing wpftPlaceholder, comparing wpftTooltip, comparing wpftDefault, comparing wpftOptional] f1 f2
compare (WorkflowPayloadSpec f1@WorkflowPayloadFieldNumber{}) (WorkflowPayloadSpec f2@WorkflowPayloadFieldNumber{}) = mconcat [comparing wpfnLabel, comparing wpfnPlaceholder, comparing wpfnTooltip, comparing wpfnDefault, comparing wpfnMin, comparing wpfnMax, comparing wpfnStep, comparing wpfnOptional] f1 f2
compare (WorkflowPayloadSpec f1@WorkflowPayloadFieldBool{}) (WorkflowPayloadSpec f2@WorkflowPayloadFieldBool{}) = mconcat [comparing wpfbLabel, comparing wpfbTooltip, comparing wpfbDefault] f1 f2
compare (WorkflowPayloadSpec f1@WorkflowPayloadFieldFile{}) (WorkflowPayloadSpec f2@WorkflowPayloadFieldFile{}) = mconcat [comparing wpffLabel, comparing wpffTooltip, comparing wpffDefault, comparing wpffOptional] f1 f2
compare (WorkflowPayloadSpec f1@WorkflowPayloadFieldUser{}) (WorkflowPayloadSpec f2@WorkflowPayloadFieldUser{}) = mconcat [comparing wpfuLabel, comparing wpfuTooltip, comparing wpfuDefault, comparing wpfuOptional] f1 f2
compare (WorkflowPayloadSpec WorkflowPayloadFieldText{} ) _ = LT
compare (WorkflowPayloadSpec WorkflowPayloadFieldNumber{}) (WorkflowPayloadSpec WorkflowPayloadFieldText{}) = GT
compare (WorkflowPayloadSpec WorkflowPayloadFieldNumber{}) _ = LT
@ -238,80 +238,80 @@ instance (Ord userid, Ord fileid, FromJSON userid, FromJSON fileid) => FromJSON
instance (ToJSON fileid, ToJSON userid) => ToJSON (WorkflowPayloadSpec fileid userid) where
toJSON (WorkflowPayloadSpec WorkflowPayloadFieldText{..}) = JSON.object
[ "tag" JSON..= ("text" :: Text)
, "label" JSON..= wepftLabel
, "placeholder" JSON..= wepftPlaceholder
, "tooltip" JSON..= wepftTooltip
, "default" JSON..= wepftDefault
, "optional" JSON..= wepftOptional
, "label" JSON..= wpftLabel
, "placeholder" JSON..= wpftPlaceholder
, "tooltip" JSON..= wpftTooltip
, "default" JSON..= wpftDefault
, "optional" JSON..= wpftOptional
]
toJSON (WorkflowPayloadSpec WorkflowPayloadFieldNumber{..}) = JSON.object
[ "tag" JSON..= ("number" :: Text)
, "label" JSON..= wepfnLabel
, "placeholder" JSON..= wepfnPlaceholder
, "tooltip" JSON..= wepfnTooltip
, "default" JSON..= wepfnDefault
, "min" JSON..= wepfnMin
, "max" JSON..= wepfnMax
, "step" JSON..= wepfnStep
, "optional" JSON..= wepfnOptional
, "label" JSON..= wpfnLabel
, "placeholder" JSON..= wpfnPlaceholder
, "tooltip" JSON..= wpfnTooltip
, "default" JSON..= wpfnDefault
, "min" JSON..= wpfnMin
, "max" JSON..= wpfnMax
, "step" JSON..= wpfnStep
, "optional" JSON..= wpfnOptional
]
toJSON (WorkflowPayloadSpec WorkflowPayloadFieldBool{..}) = JSON.object
[ "tag" JSON..= ("bool" :: Text)
, "label" JSON..= wepfbLabel
, "tooltip" JSON..= wepfbTooltip
, "default" JSON..= wepfbDefault
, "label" JSON..= wpfbLabel
, "tooltip" JSON..= wpfbTooltip
, "default" JSON..= wpfbDefault
]
toJSON (WorkflowPayloadSpec WorkflowPayloadFieldFile{..}) = JSON.object
[ "tag" JSON..= ("file" :: Text)
, "label" JSON..= wepffLabel
, "tooltip" JSON..= wepffTooltip
, "default" JSON..= wepffDefault
, "optional" JSON..= wepffOptional
, "label" JSON..= wpffLabel
, "tooltip" JSON..= wpffTooltip
, "default" JSON..= wpffDefault
, "optional" JSON..= wpffOptional
]
toJSON (WorkflowPayloadSpec WorkflowPayloadFieldUser{..}) = JSON.object
[ "tag" JSON..= ("user" :: Text)
, "label" JSON..= wepfuLabel
, "tooltip" JSON..= wepfuTooltip
, "default" JSON..= wepfuDefault
, "optional" JSON..= wepfuOptional
, "label" JSON..= wpfuLabel
, "tooltip" JSON..= wpfuTooltip
, "default" JSON..= wpfuDefault
, "optional" JSON..= wpfuOptional
]
instance (FromJSON fileid, FromJSON userid) => FromJSON (WorkflowPayloadSpec fileid userid) where
parseJSON = JSON.withObject "WorkflowPayloadSpec" $ \o -> do
fieldTag <- (o JSON..: "tag" :: Parser Text)
case fieldTag of
"text" -> do
wepftLabel <- o JSON..: "label"
wepftPlaceholder <- o JSON..: "placeholder"
wepftTooltip <- o JSON..:? "tooltip"
wepftDefault <- o JSON..:? "default"
wepftOptional <- o JSON..:? "optional"
wpftLabel <- o JSON..: "label"
wpftPlaceholder <- o JSON..: "placeholder"
wpftTooltip <- o JSON..:? "tooltip"
wpftDefault <- o JSON..:? "default"
wpftOptional <- o JSON..:? "optional"
return $ WorkflowPayloadSpec WorkflowPayloadFieldText{..}
"number" -> do
wepfnLabel <- o JSON..: "label"
wepfnPlaceholder <- o JSON..: "placeholder"
wepfnTooltip <- o JSON..:? "tooltip"
wepfnDefault <- (o JSON..:? "default" :: Parser (Maybe Scientific))
wepfnMin <- o JSON..:? "min"
wepfnMax <- o JSON..:? "max"
wepfnStep <- o JSON..: "step"
wepfnOptional <- o JSON..:? "optional"
wpfnLabel <- o JSON..: "label"
wpfnPlaceholder <- o JSON..: "placeholder"
wpfnTooltip <- o JSON..:? "tooltip"
wpfnDefault <- (o JSON..:? "default" :: Parser (Maybe Scientific))
wpfnMin <- o JSON..:? "min"
wpfnMax <- o JSON..:? "max"
wpfnStep <- o JSON..: "step"
wpfnOptional <- o JSON..:? "optional"
return $ WorkflowPayloadSpec WorkflowPayloadFieldNumber{..}
"bool" -> do
wepfbLabel <- o JSON..: "label"
wepfbTooltip <- o JSON..:? "tooltip"
wepfbDefault <- (o JSON..:? "default" :: Parser (Maybe Bool))
wpfbLabel <- o JSON..: "label"
wpfbTooltip <- o JSON..:? "tooltip"
wpfbDefault <- (o JSON..:? "default" :: Parser (Maybe Bool))
return $ WorkflowPayloadSpec WorkflowPayloadFieldBool{..}
"file" -> do
wepffLabel <- o JSON..: "label"
wepffTooltip <- o JSON..:? "tooltip"
wepffDefault <- (o JSON..:? "default" :: Parser (Maybe fileid))
wepffOptional <- o JSON..:? "optional"
wpffLabel <- o JSON..: "label"
wpffTooltip <- o JSON..:? "tooltip"
wpffDefault <- (o JSON..:? "default" :: Parser (Maybe fileid))
wpffOptional <- o JSON..:? "optional"
return $ WorkflowPayloadSpec WorkflowPayloadFieldFile{..}
"user" -> do
wepfuLabel <- o JSON..: "label"
wepfuTooltip <- o JSON..:? "tooltip"
wepfuDefault <- (o JSON..:? "default" :: Parser (Maybe userid))
wepfuOptional <- o JSON..:? "optional"
wpfuLabel <- o JSON..: "label"
wpfuTooltip <- o JSON..:? "tooltip"
wpfuDefault <- (o JSON..:? "default" :: Parser (Maybe userid))
wpfuOptional <- o JSON..:? "optional"
return $ WorkflowPayloadSpec WorkflowPayloadFieldUser{..}
_ -> terror $ "WorkflowPayloadSpec parseJSON error: expected field tag (text|number|bool|file|user), but got " <> fieldTag