packages feed

morpheus-graphql-0.14.0: test/Feature/Schema/API.hs

{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeFamilies #-}

module Feature.Schema.API
  ( api,
  )
where

import Data.Morpheus (interpreter)
import Data.Morpheus.Types (GQLRequest, GQLResponse, GQLType (..), RootResolver (..), 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 :: RootResolver IO () Query Undefined Undefined
rootResolver =
  RootResolver
    { queryResolver = Query {a1 = A "" 0, a2 = A2.A 0},
      mutationResolver = Undefined,
      subscriptionResolver = Undefined
    }

api :: GQLRequest -> IO GQLResponse
api = interpreter rootResolver