{-# 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 (..), 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) instance GQLType A where type KIND A = OBJECT 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