morpheus-graphql-server-0.25.0: Morpheus GraphQL
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Morpheus.Server.Resolvers

Synopsis

Documentation

class ToJSON (Dep a) => ResolveNamed (m :: Type -> Type) (a :: Type) where Source #

Minimal complete definition

resolveNamed

Associated Types

type Dep a :: Type Source #

Methods

resolveBatched :: Monad m => [Dep a] -> m [Maybe a] Source #

resolveNamed :: Monad m => Dep a -> m a Source #

Instances

Instances details
Monad m => ResolveNamed m ID Source # 
Instance details

Defined in Data.Morpheus.Server.NamedResolvers

Associated Types

type Dep ID Source #

Monad m => ResolveNamed m Text Source # 
Instance details

Defined in Data.Morpheus.Server.NamedResolvers

Associated Types

type Dep Text Source #

(ResolveNamed m a, MonadError GQLError m) => ResolveNamed m (Maybe a) Source # 
Instance details

Defined in Data.Morpheus.Server.NamedResolvers

Associated Types

type Dep (Maybe a) Source #

Methods

resolveBatched :: [Dep (Maybe a)] -> m [Maybe (Maybe a)] Source #

resolveNamed :: Dep (Maybe a) -> m (Maybe a) Source #

(ResolveNamed m a, MonadError GQLError m) => ResolveNamed m [a] Source # 
Instance details

Defined in Data.Morpheus.Server.NamedResolvers

Associated Types

type Dep [a] Source #

Methods

resolveBatched :: [Dep [a]] -> m [Maybe [a]] Source #

resolveNamed :: Dep [a] -> m [a] Source #

data NamedResolverT (m :: Type -> Type) a where Source #

Constructors

Ref :: ResolveNamed m a => m (Dep a) -> NamedResolverT m a 
Refs :: ResolveNamed m a => m [Dep a] -> NamedResolverT m [a] 
Value :: m a -> NamedResolverT m a 

Instances

Instances details
GQLType a => GQLType (NamedResolverT m a) Source # 
Instance details

Defined in Data.Morpheus.Server.Types.GQLType

Associated Types

type KIND (NamedResolverT m a) :: DerivingKind Source #

Methods

directives :: f (NamedResolverT m a) -> DirectiveUsages Source #

__type :: f (NamedResolverT m a) -> TypeCategory -> TypeData

type KIND (NamedResolverT m a) Source # 
Instance details

Defined in Data.Morpheus.Server.Types.GQLType

resolve :: forall m a b. ResolveByType (RES_TYPE a b) m a b => Monad m => m a -> NamedResolverT m b Source #

data NamedResolvers (m :: Type -> Type) event (qu :: (Type -> Type) -> Type) (mu :: (Type -> Type) -> Type) (su :: (Type -> Type) -> Type) Source #

Constructors

ResolveNamed (Resolver QUERY event m) (qu (NamedResolverT (Resolver QUERY event m))) => NamedResolvers 

data RootResolver (m :: Type -> Type) event (query :: (Type -> Type) -> Type) (mutation :: (Type -> Type) -> Type) (subscription :: (Type -> Type) -> Type) Source #

GraphQL Root resolver, also the interpreter generates a GQL schema from it. queryResolver is required, mutationResolver and subscriptionResolver are optional, if your schema does not supports mutation or subscription , you can use () for it.

Constructors

RootResolver 

Fields

type ResolverO o e m a = Flexible (Resolver o e m) a Source #

type ComposedResolver o e m f a = Composed (Resolver o e m) f a Source #

publish :: Monad m => [e] -> Resolver MUTATION e m () Source #

constRes :: (WithOperation o, Monad m) => b -> a -> Resolver o e m b Source #

type ResolverQ e m a = Flexible (Resolver QUERY e m) a Source #

type ResolverM e m a = Flexible (Resolver MUTATION e m) a Source #

type ResolverS e m a = Flexible (Resolver SUBSCRIPTION e m) a Source #