morpheus-graphql-app-0.19.0: Morpheus GraphQL App
Safe HaskellNone
LanguageHaskell2010

Data.Morpheus.App.Internal.Resolving

Synopsis

Documentation

data Resolver (o :: OperationType) event (m :: Type -> Type) value Source #

Instances

Instances details
Monad m => PushEvents e (Resolver MUTATION e m) Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

pushEvents :: [e] -> Resolver MUTATION e m () #

(LiftOperation o, Monad m) => MonadReader ResolverContext (Resolver o e m) Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

ask :: Resolver o e m ResolverContext #

local :: (ResolverContext -> ResolverContext) -> Resolver o e m a -> Resolver o e m a #

reader :: (ResolverContext -> a) -> Resolver o e m a #

(LiftOperation o, Monad m) => MonadError GQLError (Resolver o e m) Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

throwError :: GQLError -> Resolver o e m a #

catchError :: Resolver o e m a -> (GQLError -> Resolver o e m a) -> Resolver o e m a #

LiftOperation o => MonadTrans (Resolver o e) Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

lift :: Monad m => m a -> Resolver o e m a #

(Monad m, LiftOperation o) => Monad (Resolver o e m) Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

(>>=) :: Resolver o e m a -> (a -> Resolver o e m b) -> Resolver o e m b #

(>>) :: Resolver o e m a -> Resolver o e m b -> Resolver o e m b #

return :: a -> Resolver o e m a #

Functor m => Functor (Resolver o e m) Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

fmap :: (a -> b) -> Resolver o e m a -> Resolver o e m b #

(<$) :: a -> Resolver o e m b -> Resolver o e m a #

(Monad m, LiftOperation o) => MonadFail (Resolver o e m) Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

fail :: String -> Resolver o e m a #

(LiftOperation o, Monad m) => Applicative (Resolver o e m) Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

pure :: a -> Resolver o e m a #

(<*>) :: Resolver o e m (a -> b) -> Resolver o e m a -> Resolver o e m b #

liftA2 :: (a -> b -> c) -> Resolver o e m a -> Resolver o e m b -> Resolver o e m c #

(*>) :: Resolver o e m a -> Resolver o e m b -> Resolver o e m b #

(<*) :: Resolver o e m a -> Resolver o e m b -> Resolver o e m a #

(MonadIO m, LiftOperation o) => MonadIO (Resolver o e m) Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

liftIO :: IO a -> Resolver o e m a #

Show (Resolver o e m value) Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

showsPrec :: Int -> Resolver o e m value -> ShowS #

show :: Resolver o e m value -> String #

showList :: [Resolver o e m value] -> ShowS #

(Monad m, Semigroup a, LiftOperation o) => Semigroup (Resolver o e m a) Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

(<>) :: Resolver o e m a -> Resolver o e m a -> Resolver o e m a #

sconcat :: NonEmpty (Resolver o e m a) -> Resolver o e m a #

stimes :: Integral b => b -> Resolver o e m a -> Resolver o e m a #

class LiftOperation (o :: OperationType) Source #

Minimal complete definition

packResolver

Instances

Instances details
LiftOperation QUERY Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

packResolver :: forall (m :: Type -> Type) e a. Monad m => ResolverStateT e m a -> Resolver QUERY e m a

LiftOperation MUTATION Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

packResolver :: forall (m :: Type -> Type) e a. Monad m => ResolverStateT e m a -> Resolver MUTATION e m a

LiftOperation SUBSCRIPTION Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

packResolver :: forall (m :: Type -> Type) e a. Monad m => ResolverStateT e m a -> Resolver SUBSCRIPTION e m a

lift :: (MonadTrans t, Monad m) => m a -> t m a #

Lift a computation from the argument monad to the constructed monad.

data ResponseEvent event (m :: Type -> Type) Source #

Constructors

Publish event 
Subscribe 

Fields

type ResponseStream event (m :: Type -> Type) = ResultT (ResponseEvent event m) m Source #

cleanEvents :: forall (m :: Type -> Type) e a e'. Functor m => ResultT e m a -> ResultT e' m a #

data Result err a #

Constructors

Success 

Fields

Failure 

Fields

Instances

Instances details
Bifunctor Result 
Instance details

Defined in Data.Morpheus.Ext.Result

Methods

bimap :: (a -> b) -> (c -> d) -> Result a c -> Result b d #

first :: (a -> b) -> Result a c -> Result b c #

second :: (b -> c) -> Result a b -> Result a c #

MonadError er (Result er) 
Instance details

Defined in Data.Morpheus.Ext.Result

Methods

throwError :: er -> Result er a #

catchError :: Result er a -> (er -> Result er a) -> Result er a #

Monad (Result er) 
Instance details

Defined in Data.Morpheus.Ext.Result

Methods

(>>=) :: Result er a -> (a -> Result er b) -> Result er b #

(>>) :: Result er a -> Result er b -> Result er b #

return :: a -> Result er a #

Functor (Result err) 
Instance details

Defined in Data.Morpheus.Ext.Result

Methods

fmap :: (a -> b) -> Result err a -> Result err b #

(<$) :: a -> Result err b -> Result err a #

IsString err => MonadFail (Result err) 
Instance details

Defined in Data.Morpheus.Ext.Result

Methods

fail :: String -> Result err a #

Applicative (Result er) 
Instance details

Defined in Data.Morpheus.Ext.Result

Methods

pure :: a -> Result er a #

(<*>) :: Result er (a -> b) -> Result er a -> Result er b #

liftA2 :: (a -> b -> c) -> Result er a -> Result er b -> Result er c #

(*>) :: Result er a -> Result er b -> Result er b #

(<*) :: Result er a -> Result er b -> Result er a #

newtype ResultT event (m :: Type -> Type) a #

Constructors

ResultT 

Fields

Instances

Instances details
Applicative m => PushEvents event (ResultT event m) 
Instance details

Defined in Data.Morpheus.Ext.Result

Methods

pushEvents :: [event] -> ResultT event m () #

Monad m => MonadError GQLError (ResultT event m) 
Instance details

Defined in Data.Morpheus.Ext.Result

Methods

throwError :: GQLError -> ResultT event m a #

catchError :: ResultT event m a -> (GQLError -> ResultT event m a) -> ResultT event m a #

MonadTrans (ResultT event) 
Instance details

Defined in Data.Morpheus.Ext.Result

Methods

lift :: Monad m => m a -> ResultT event m a #

Monad m => Monad (ResultT event m) 
Instance details

Defined in Data.Morpheus.Ext.Result

Methods

(>>=) :: ResultT event m a -> (a -> ResultT event m b) -> ResultT event m b #

(>>) :: ResultT event m a -> ResultT event m b -> ResultT event m b #

return :: a -> ResultT event m a #

Functor m => Functor (ResultT event m) 
Instance details

Defined in Data.Morpheus.Ext.Result

Methods

fmap :: (a -> b) -> ResultT event m a -> ResultT event m b #

(<$) :: a -> ResultT event m b -> ResultT event m a #

Applicative m => Applicative (ResultT event m) 
Instance details

Defined in Data.Morpheus.Ext.Result

Methods

pure :: a -> ResultT event m a #

(<*>) :: ResultT event m (a -> b) -> ResultT event m a -> ResultT event m b #

liftA2 :: (a -> b -> c) -> ResultT event m a -> ResultT event m b -> ResultT event m c #

(*>) :: ResultT event m a -> ResultT event m b -> ResultT event m b #

(<*) :: ResultT event m a -> ResultT event m b -> ResultT event m a #

class PushEvents e (m :: Type -> Type) where #

Methods

pushEvents :: [e] -> m () #

Instances

Instances details
Applicative m => PushEvents event (ResultT event m) 
Instance details

Defined in Data.Morpheus.Ext.Result

Methods

pushEvents :: [event] -> ResultT event m () #

Monad m => PushEvents e (Resolver MUTATION e m) Source # 
Instance details

Defined in Data.Morpheus.App.Internal.Resolving.Resolver

Methods

pushEvents :: [e] -> Resolver MUTATION e m () #

unsafeInternalContext :: (Monad m, LiftOperation o) => Resolver o e m ResolverContext Source #

A function to return the internal ResolverContext within a resolver's monad. Using the ResolverContext itself is unsafe because it exposes internal structures of the AST, but you can use the Data.Morpheus.Types.SelectionTree typeClass to manipulate the internal AST with a safe interface.

resultOr :: (NonEmpty err -> a') -> (a -> a') -> Result err a -> a' #

data SubscriptionField (a :: Type) where Source #

Constructors

SubscriptionField 

Fields

Instances

Instances details
EncodeWrapper SubscriptionField Source # 
Instance details

Defined in Data.Morpheus.Types.GQLWrapper

Methods

encodeWrapper :: Monad m => (a -> m (ResolverValue m)) -> SubscriptionField a -> m (ResolverValue m) Source #

type ResolverState = ResolverStateT () Identity Source #

class EventHandler e where Source #

Associated Types

type Channel e Source #

Methods

getChannels :: e -> [Channel e] Source #