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