morpheus-graphql-0.1.0: test/Feature/Schema/API.hs
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
module Feature.Schema.API
( api
) where
import Data.ByteString.Lazy.Char8 (ByteString)
import Data.Morpheus (interpreter)
import Data.Morpheus.Kind (KIND, OBJECT)
import Data.Morpheus.Types (GQLRootResolver (..), GQLType (..))
import Data.Text (Text)
import qualified Feature.Schema.A2 as A2 (A (..))
import GHC.Generics (Generic)
type instance KIND A = OBJECT
data A = A
{ aText :: Text
, aInt :: Int
} deriving (Generic, GQLType)
data Query = Query
{ a1 :: A
, a2 :: A2.A
} deriving (Generic)
rootResolver :: GQLRootResolver IO Query () ()
rootResolver =
GQLRootResolver
{ queryResolver = return Query {a1 = A "" 0, a2 = A2.A 0}
, mutationResolver = return ()
, subscriptionResolver = return ()
}
api :: ByteString -> IO ByteString
api = interpreter rootResolver