From 4e5dc3433a53c2e0404fd2adb9fb33c898d1afa6 Mon Sep 17 00:00:00 2001 From: Danny Navarro Date: Mon, 19 Oct 2015 12:19:39 +0200 Subject: Implement first StarWars end-to-end test `execute` still needs to be implemented. --- Data/GraphQL/Schema.hs | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'Data/GraphQL/Schema.hs') diff --git a/Data/GraphQL/Schema.hs b/Data/GraphQL/Schema.hs index 8d4e1d6..37938ee 100644 --- a/Data/GraphQL/Schema.hs +++ b/Data/GraphQL/Schema.hs @@ -5,26 +5,25 @@ import Data.HashMap.Lazy (HashMap) data Schema f = Schema (QueryRoot f) (Maybe (MutationRoot f)) -type QueryRoot f = Object f +type QueryRoot f = Map f -type MutationRoot f = Object f +type MutationRoot f = Map f -type Object f = HashMap Text (Input -> f Output) +type Map f = HashMap Text (Resolver f) -type ObjectInput = HashMap Text Input +type Resolver f = Input -> Output f -data Output = OutputScalar Scalar - | OutputObject (HashMap Text Output) - | OutputUnion [Output] - | OutputEnum Scalar - | OutputList [Output] - | OutputNonNull Output - | InputError +data Output f = OutputScalar (f Scalar) + | OutputMap (Map f) + | OutputUnion [Map f] + | OutputEnum (f Scalar) + | OutputList [Output f] + | OutputNonNull (Output f) + | InputError data Input = InputScalar Scalar - | InputObject ObjectInput | InputEnum Scalar - | InputList [Output] + | InputList [Input] | InputNonNull Input data Scalar = ScalarInt Int @@ -32,5 +31,3 @@ data Scalar = ScalarInt Int | ScalarString Text | ScalarBool Bool | ScalarID Text - -newtype Interface f = Interface (Object f) -- cgit v1.2.3