{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Data.Morpheus.Types
( GQLType
( KIND,
description,
getDescriptions,
typeOptions,
getDirectives,
defaultValues,
directives
),
EncodeScalar (..),
EncodeWrapper (..),
DecodeScalar (..),
DecodeWrapper (..),
GQLRequest (..),
GQLResponse (..),
ID (..),
ScalarValue (..),
RootResolver (..),
constRes,
constMutRes,
Undefined,
Resolver,
QUERY,
MUTATION,
SUBSCRIPTION,
lift,
liftEither,
failRes,
WithOperation,
publish,
subscribe,
unsafeInternalContext,
ResolverContext (..),
ResolverO,
ComposedResolver,
ResolverQ,
ResolverM,
ResolverS,
ResolveQ,
ResolveM,
ResolveS,
Res,
MutRes,
SubRes,
IORes,
IOMutRes,
IOSubRes,
SubscriptionField,
App,
RenderGQL,
render,
TypeGuard (..),
Arg (..),
NamedResolvers (..),
GQLTypeOptions,
defaultTypeOptions,
fieldLabelModifier,
constructorTagModifier,
typeNameModifier,
defaultRootResolver,
Prefixes (..),
VisitType (..),
VisitField (..),
Describe (..),
VisitEnum (..),
typeDirective,
fieldDirective,
enumDirective,
GQLDirective (..),
Deprecated (..),
dropNamespaceOptions,
DropNamespace (..),
Rename (..),
)
where
import Control.Monad.Except (MonadError (..))
import Data.Morpheus.Server.Resolvers
import Data.Morpheus.Server.Types
( App,
Arg (..),
DecodeScalar (..),
DecodeWrapper (..),
Deprecated (..),
Describe (..),
DropNamespace (..),
EncodeScalar (..),
EncodeWrapper (..),
GQLDirective (..),
GQLRequest (..),
GQLResponse (..),
GQLType (..),
GQLTypeOptions (..),
ID (..),
MUTATION,
Prefixes (..),
QUERY,
Rename (..),
RenderGQL,
Resolver,
ResolverContext (..),
SUBSCRIPTION,
ScalarValue (..),
SubscriptionField,
TypeGuard (..),
Undefined,
VisitEnum (..),
VisitField (..),
VisitType (..),
WithOperation,
defaultTypeOptions,
dropNamespaceOptions,
enumDirective,
fieldDirective,
render,
subscribe,
typeDirective,
unsafeInternalContext,
)
import Data.Morpheus.Types.Internal.AST (GQLError)
import Relude hiding (Undefined)
{-# DEPRECATED Res "use ResolverQ" #-}
type Res = Resolver QUERY
{-# DEPRECATED MutRes "use ResolverM" #-}
type MutRes = Resolver MUTATION
{-# DEPRECATED SubRes "use ResolverS" #-}
type SubRes = Resolver SUBSCRIPTION
{-# DEPRECATED IORes "use ResolverQ" #-}
type IORes e = Res e IO
{-# DEPRECATED IOMutRes "use ResolverM" #-}
type IOMutRes e = MutRes e IO
{-# DEPRECATED IOSubRes "use ResolverS" #-}
type IOSubRes e = SubRes e IO
{-# DEPRECATED ResolveQ "use ResolverQ" #-}
type ResolveQ e m a = ResolverQ e m a
{-# DEPRECATED ResolveM "use ResolverM" #-}
type ResolveM e m a = ResolverM e m a
{-# DEPRECATED ResolveS "use ResolverS" #-}
type ResolveS e m a = ResolverS e m a
constMutRes :: Monad m => [e] -> a -> args -> ResolverM e m a
constMutRes :: forall (m :: * -> *) e a args.
Monad m =>
[e] -> a -> args -> ResolverM e m a
constMutRes [e]
events a
v = forall a b. a -> b -> a
const forall a b. (a -> b) -> a -> b
$ do
forall (m :: * -> *) e. Monad m => [e] -> Resolver MUTATION e m ()
publish [e]
events
forall (f :: * -> *) a. Applicative f => a -> f a
pure a
v
{-# DEPRECATED failRes "use \"fail\" from \"MonadFail\"" #-}
failRes ::
( Monad m,
WithOperation o
) =>
String ->
Resolver o e m a
failRes :: forall (m :: * -> *) (o :: OperationType) e a.
(Monad m, WithOperation o) =>
String -> Resolver o e m a
failRes = forall (m :: * -> *) a. MonadFail m => String -> m a
fail
liftEither :: (MonadTrans t, Monad (t m), MonadError GQLError (t m)) => Monad m => m (Either String a) -> t m a
liftEither :: forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad (t m), MonadError GQLError (t m), Monad m) =>
m (Either String a) -> t m a
liftEither m (Either String a)
x = forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Either String a)
x forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (forall e (m :: * -> *) a. MonadError e m => e -> m a
throwError forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. IsString a => String -> a
fromString) forall (f :: * -> *) a. Applicative f => a -> f a
pure