Cleans up Request Transform JSON

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2512
GitOrigin-RevId: bd9d71257641276b805e7f0a2b1389c276d9c9cf
This commit is contained in:
Solomon Bothwell 2021-10-05 17:08:25 -07:00 committed by hasura-bot
parent ddb1b09f45
commit 49c07c79e5
2 changed files with 22 additions and 15 deletions

View File

@ -116,17 +116,24 @@ instance NFData MetadataTransform
instance Cacheable MetadataTransform
infixr 8 .=?
(.=?) :: J.ToJSON v => Text -> Maybe v -> Maybe (Text, J.Value)
(.=?) _ Nothing = Nothing
(.=?) k (Just v) = Just (k, J.toJSON v)
instance J.ToJSON MetadataTransform where
toJSON MetadataTransform {..} =
J.object
[ "method" J..= mtRequestMethod,
"url" J..= mtRequestURL,
"body" J..= mtBodyTransform,
"content_type" J..= mtContentType,
"query_params" J..= fmap M.fromList mtQueryParams,
"request_headers" J..= mtRequestHeaders,
"template_engine" J..= mtTemplatingEngine
]
J.object $
["template_engine" J..= mtTemplatingEngine]
<> catMaybes
[ "method" .=? mtRequestMethod,
"url" .=? mtRequestURL,
"body" .=? mtBodyTransform,
"content_type" .=? mtContentType,
"query_params" .=? fmap M.fromList mtQueryParams,
"request_headers" .=? mtRequestHeaders
]
instance J.FromJSON MetadataTransform where
parseJSON = J.withObject "Object" $ \o -> do

View File

@ -818,13 +818,13 @@ metadataToOrdJSON
AO.object $
[ ("name", AO.toOrdered name),
("definition", AO.toOrdered definition),
("retry_conf", AO.toOrdered retryConf),
("request_transform", maybe AO.Null AO.toOrdered metadataTransform)
("retry_conf", AO.toOrdered retryConf)
]
<> catMaybes
[ maybeAnyToMaybeOrdPair "webhook" AO.toOrdered webhook,
maybeAnyToMaybeOrdPair "webhook_from_env" AO.toOrdered webhookFromEnv,
headers >>= listToMaybeOrdPair "headers" AO.toOrdered
headers >>= listToMaybeOrdPair "headers" AO.toOrdered,
fmap (("request_transform",) . AO.toOrdered) metadataTransform
]
functionMetadataToOrdJSON :: Backend b => FunctionMetadata b -> AO.Value
@ -983,12 +983,12 @@ metadataToOrdJSON
actionMetadataToOrdJSON (ActionMetadata name comment definition permissions metaTransform) =
AO.object $
[ ("name", AO.toOrdered name),
("definition", actionDefinitionToOrdJSON definition),
("request_transform", AO.toOrdered metaTransform)
("definition", actionDefinitionToOrdJSON definition)
]
<> catMaybes
[ maybeCommentToMaybeOrdPair comment,
listToMaybeOrdPair "permissions" permToOrdJSON permissions
listToMaybeOrdPair "permissions" permToOrdJSON permissions,
fmap (("request_transform",) . AO.toOrdered) metaTransform
]
where
argDefinitionToOrdJSON :: ArgumentDefinition GraphQLType -> AO.Value