{-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} module Feature.Schema.API ( api ) where import Data.Morpheus (interpreter) import Data.Morpheus.Types (GQLRequest, GQLResponse, GQLRootResolver (..), GQLType (..), Undefined (..)) 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, GQLType) data Query (m :: * -> * ) = Query { a1 :: A , a2 :: A2.A } deriving (Generic, GQLType) rootResolver :: GQLRootResolver IO () Query Undefined Undefined rootResolver = GQLRootResolver { queryResolver = Query {a1 = A "" 0, a2 = A2.A 0} , mutationResolver = Undefined , subscriptionResolver = Undefined } api :: GQLRequest -> IO GQLResponse api = interpreter rootResolver