summaryrefslogtreecommitdiff
path: root/src/Language/GraphQL/AST
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2019-07-25 07:37:36 +0200
committerEugen Wissner <belka@caraus.de>2019-07-25 07:37:36 +0200
commit15568a3b99429dc2afb22aa9283c8247fee18484 (patch)
tree604689ae6a11f09561dd4c8d0034ec4b0fdb3f84 /src/Language/GraphQL/AST
parent282946560e14a94748b4a0599ac7419c27848c04 (diff)
downloadgraphql-15568a3b99429dc2afb22aa9283c8247fee18484.tar.gz
Implement multiple operation support
Diffstat (limited to 'src/Language/GraphQL/AST')
-rw-r--r--src/Language/GraphQL/AST/Core.hs4
-rw-r--r--src/Language/GraphQL/AST/Transform.hs9
2 files changed, 6 insertions, 7 deletions
diff --git a/src/Language/GraphQL/AST/Core.hs b/src/Language/GraphQL/AST/Core.hs
index 00072e0..87dced9 100644
--- a/src/Language/GraphQL/AST/Core.hs
+++ b/src/Language/GraphQL/AST/Core.hs
@@ -21,8 +21,8 @@ type Name = Text
type Document = NonEmpty Operation
-data Operation = Query (NonEmpty Field)
- | Mutation (NonEmpty Field)
+data Operation = Query (Maybe Text) (NonEmpty Field)
+ | Mutation (Maybe Text) (NonEmpty Field)
deriving (Eq,Show)
data Field = Field (Maybe Alias) Name [Argument] [Field] deriving (Eq,Show)
diff --git a/src/Language/GraphQL/AST/Transform.hs b/src/Language/GraphQL/AST/Transform.hs
index 64670db..63a2c72 100644
--- a/src/Language/GraphQL/AST/Transform.hs
+++ b/src/Language/GraphQL/AST/Transform.hs
@@ -41,7 +41,6 @@ operations
-> Maybe Core.Document
operations subs fr = NonEmpty.nonEmpty <=< traverse (operation subs fr)
--- TODO: Replace Maybe by MonadThrow CustomError
operation
:: Schema.Subs
-> Fragmenter
@@ -50,10 +49,10 @@ operation
operation subs fr (Full.OperationSelectionSet sels) =
operation subs fr $ Full.OperationDefinition Full.Query empty empty empty sels
-- TODO: Validate Variable definitions with substituter
-operation subs fr (Full.OperationDefinition ot _n _vars _dirs sels) =
- case ot of
- Full.Query -> Core.Query <$> node
- Full.Mutation -> Core.Mutation <$> node
+operation subs fr (Full.OperationDefinition operationType name _vars _dirs sels)
+ = case operationType of
+ Full.Query -> Core.Query name <$> node
+ Full.Mutation -> Core.Mutation name <$> node
where
node = traverse (hush . selection subs fr) sels