morpheus-graphql-server-0.28.2: test/Feature/Collision/CategoryCollisionSuccess.hs
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeFamilies #-}
module Feature.Collision.CategoryCollisionSuccess
( api,
)
where
import Data.Kind (Type)
import Data.Morpheus.Server (interpreter)
import Data.Morpheus.Server.Types
( GQLRequest,
GQLResponse,
GQLType (..),
InputTypeNamespace (..),
RootResolver (..),
Undefined,
defaultRootResolver,
typeDirective,
)
import Data.Text
( Text,
)
import GHC.Generics (Generic)
data Deity = Deity
{ name :: Text,
age :: Int
}
deriving (Show, Generic)
instance GQLType Deity where
directives _ =
typeDirective InputTypeNamespace {inputTypeNamespace = "Input"}
newtype DeityArgs = DeityArgs
{ input :: Deity
}
deriving
( Show,
Generic,
GQLType
)
newtype Query (m :: Type -> Type) = Query
{ deity :: DeityArgs -> m Deity
}
deriving
( Generic,
GQLType
)
rootResolver :: RootResolver IO () Query Undefined Undefined
rootResolver =
defaultRootResolver
{ queryResolver =
Query
{ deity =
const
$ pure
Deity
{ name =
"Morpheus",
age = 1000
}
}
}
api :: GQLRequest -> IO GQLResponse
api = interpreter rootResolver