Implement first StarWars end-to-end test

`execute` still needs to be implemented.
This commit is contained in:
Danny Navarro
2015-10-19 12:19:39 +02:00
parent 3f30a44d1d
commit 4e5dc3433a
5 changed files with 71 additions and 42 deletions

View File

@ -10,5 +10,7 @@ import qualified Data.Aeson as Aeson (Value)
import Data.GraphQL.AST
import Data.GraphQL.Schema
execute :: Applicative f => Schema -> Document -> f Aeson.Value
execute = undefined
type Response = Aeson.Value
execute :: Applicative f => Schema f -> Document -> f Response
execute _schema _doc = undefined

View File

@ -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)