morpheus-graphql-core-0.12.0: Morpheus GraphQL Core

Safe HaskellNone
LanguageHaskell2010

Data.Morpheus.Types.Internal.Resolving

Synopsis

Documentation

data Event e c Source #

Constructors

Event 

Fields

Instances
GQLChannel (Event channel content) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Associated Types

type StreamChannel (Event channel content) :: Type Source #

Methods

streamChannels :: Event channel content -> [Channel (Event channel content)] Source #

type StreamChannel (Event channel content) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

type StreamChannel (Event channel content) = channel

type family UnSubResolver (a :: * -> *) :: * -> * Source #

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

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

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

Methods

failure :: GQLErrors -> Resolver o e m v Source #

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

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

Methods

failure :: Message -> Resolver o e m v Source #

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

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

Methods

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

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

Defined in Data.Morpheus.Types.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.Types.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 #

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

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

Defined in Data.Morpheus.Types.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.Types.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.Types.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.Types.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.Types.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.Types.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 #

type UnSubResolver (Resolver SUBSCRIPTION e m) Source # 
Instance details

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

class MapStrategy (from :: OperationType) (to :: OperationType) where Source #

Methods

mapStrategy :: Monad m => Resolver from e m (ResModel from e m) -> Resolver to e m (ResModel to e m) Source #

class LiftOperation (o :: OperationType) Source #

Minimal complete definition

packResolver, withResolver

Instances
LiftOperation SUBSCRIPTION Source # 
Instance details

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

Methods

packResolver :: Monad m => ResolverState e m a -> Resolver SUBSCRIPTION e m a

withResolver :: Monad m => ResolverState e m a -> (a -> Resolver SUBSCRIPTION e m b) -> Resolver SUBSCRIPTION e m b

LiftOperation MUTATION Source # 
Instance details

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

Methods

packResolver :: Monad m => ResolverState e m a -> Resolver MUTATION e m a

withResolver :: Monad m => ResolverState e m a -> (a -> Resolver MUTATION e m b) -> Resolver MUTATION e m b

LiftOperation QUERY Source # 
Instance details

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

Methods

packResolver :: Monad m => ResolverState e m a -> Resolver QUERY e m a

withResolver :: Monad m => ResolverState e m a -> (a -> Resolver QUERY e m b) -> Resolver QUERY e m b

toResolver :: forall o e m a b. (LiftOperation o, Monad m) => (Arguments VALID -> Eventless a) -> (a -> Resolver o e m b) -> Resolver o e m b Source #

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

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

type SubEvent event m = Event (Channel event) (event -> m GQLResponse) Source #

class Applicative f => Failure error (f :: * -> *) where Source #

Methods

failure :: error -> f v Source #

Instances
Failure error (Either error) Source # 
Instance details

Defined in Data.Morpheus.Internal.Utils

Methods

failure :: error -> Either error v Source #

Failure Message (Result e) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

failure :: Message -> Result e v Source #

Monad m => Failure GQLErrors (ResultT event m) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

failure :: GQLErrors -> ResultT event m v Source #

Applicative m => Failure Message (ResultT event m) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

failure :: Message -> ResultT event m v Source #

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

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

Methods

failure :: GQLErrors -> Resolver o e m v Source #

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

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

Methods

failure :: Message -> Resolver o e m v Source #

Failure [GQLError] (Result ev) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

failure :: [GQLError] -> Result ev v Source #

(Stream s, Ord e, Failure [a] m) => Failure [a] (ParsecT e s m) Source # 
Instance details

Defined in Data.Morpheus.Internal.Utils

Methods

failure :: [a] -> ParsecT e s m v Source #

class GQLChannel a where Source #

Associated Types

type StreamChannel a :: * Source #

Methods

streamChannels :: a -> [Channel a] Source #

Instances
GQLChannel () Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Associated Types

type StreamChannel () :: Type Source #

Methods

streamChannels :: () -> [Channel ()] Source #

GQLChannel (Event channel content) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Associated Types

type StreamChannel (Event channel content) :: Type Source #

Methods

streamChannels :: Event channel content -> [Channel (Event channel content)] Source #

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

Constructors

Publish event 
Subscribe (SubEvent event m) 

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

cleanEvents :: Functor m => ResultT e m a -> ResultT e' m a Source #

data Result events a Source #

Constructors

Success 

Fields

Failure 

Fields

Instances
Failure Message (Result e) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

failure :: Message -> Result e v Source #

PushEvents events (Result events) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

pushEvents :: [events] -> Result events () Source #

Monad (Result e) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

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

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

return :: a -> Result e a #

fail :: String -> Result e a #

Functor (Result events) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

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

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

Applicative (Result e) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

pure :: a -> Result e a #

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

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

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

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

Failure [GQLError] (Result ev) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

failure :: [GQLError] -> Result ev v Source #

newtype ResultT event (m :: * -> *) a Source #

Constructors

ResultT 

Fields

Instances
Monad m => Failure GQLErrors (ResultT event m) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

failure :: GQLErrors -> ResultT event m v Source #

Applicative m => Failure Message (ResultT event m) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

failure :: Message -> ResultT event m v Source #

Applicative m => PushEvents event (ResultT event m) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

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

MonadTrans (ResultT event) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

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

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

Defined in Data.Morpheus.Types.Internal.Resolving.Core

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 #

fail :: String -> ResultT event m a #

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

Defined in Data.Morpheus.Types.Internal.Resolving.Core

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) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

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 #

unpackEvents :: Result event a -> [event] Source #

type LibUpdater lib = lib -> Eventless lib Source #

resolveUpdates :: Monad m => lib -> [lib -> m lib] -> m lib Source #

setTypeName :: Monad m => TypeName -> Resolver o e m a -> Resolver o e m a Source #

data ObjectResModel o e m Source #

Constructors

ObjectResModel 
Instances
Show (ObjectResModel o e m) Source # 
Instance details

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

Methods

showsPrec :: Int -> ObjectResModel o e m -> ShowS #

show :: ObjectResModel o e m -> String #

showList :: [ObjectResModel o e m] -> ShowS #

Merge (ObjectResModel o e m) Source # 
Instance details

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

Methods

merge :: (Monad m0, Failure GQLErrors m0) => [Ref] -> ObjectResModel o e m -> ObjectResModel o e m -> m0 (ObjectResModel o e m) Source #

data ResModel (o :: OperationType) e (m :: * -> *) Source #

Instances
Show (ResModel o e m) Source # 
Instance details

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

Methods

showsPrec :: Int -> ResModel o e m -> ShowS #

show :: ResModel o e m -> String #

showList :: [ResModel o e m] -> ShowS #

Merge (ResModel o e m) Source # 
Instance details

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

Methods

merge :: (Monad m0, Failure GQLErrors m0) => [Ref] -> ResModel o e m -> ResModel o e m -> m0 (ResModel o e m) Source #

type FieldResModel o e m = (FieldName, Resolver o e m (ResModel o e m)) Source #

class PushEvents e m where Source #

Methods

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

Instances
PushEvents events (Result events) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

pushEvents :: [events] -> Result events () Source #

Applicative m => PushEvents event (ResultT event m) Source # 
Instance details

Defined in Data.Morpheus.Types.Internal.Resolving.Core

Methods

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

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

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

Methods

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

subscribe :: forall e m a. (PushEvents (Channel e) (ResolverState (Channel e) m), Monad m) => [StreamChannel e] -> Resolver QUERY e m (e -> Resolver QUERY e m a) -> Resolver SUBSCRIPTION e m a Source #

data Context Source #

A datatype to expose Schema and the query's AST information (Selection, Operation).

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

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

unsafeBind :: forall o e m a b. Monad m => Resolver o e m a -> (a -> Resolver o e m b) -> Resolver o e m b Source #

resultOr :: (GQLErrors -> a') -> (a -> a') -> Result e a -> a' Source #

withArguments :: forall o e m a. (LiftOperation o, Monad m) => (Arguments VALID -> Resolver o e m a) -> Resolver o e m a Source #

mkInt :: Int -> ResModel o e m Source #

mkList :: [ResModel o e m] -> ResModel o e m Source #

mkUnion :: TypeName -> Resolver o e m (ResModel o e m) -> ResModel o e m Source #

mkObject :: TypeName -> [(FieldName, Resolver o e m (ResModel o e m))] -> ResModel o e m Source #