morpheus-graphql-subscriptions-0.27.3: Morpheus GraphQL Subscriptions
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Morpheus.Subscriptions.Internal

Synopsis

Documentation

connectionThread :: (MonadUnliftIO m, Eq ch, Hashable ch) => App (Event ch con) m -> ApiContext SUB (Event ch con) m -> m () Source #

runStreamWS :: Monad m => ApiContext SUB e m -> Output SUB e m -> m () Source #

runStreamHTTP :: Monad m => ApiContext PUB e m -> Output PUB e m -> m GQLResponse Source #

data ApiContext (api :: API) event (m :: Type -> Type) where Source #

Constructors

PubContext 

Fields

SubContext 

Fields

data Input (api :: API) where Source #

Constructors

InitConnection :: UUID -> Input SUB 
Request :: GQLRequest -> Input PUB 

type PUB = 'PUB Source #

type SUB = 'SUB Source #

data Store e m Source #

PubSubStore interface shared GraphQL state between websocket and http server, you can define your own store if you provide write and read methods to work properly Morpheus needs all entries of ClientConnectionStore (+ client Callbacks) that why it is recommended that you use many local ClientStores on every server node rather then single centralized Store.

Constructors

Store 

data SessionID Source #

Instances

Instances details
Generic SessionID Source # 
Instance details

Defined in Data.Morpheus.Subscriptions.ClientConnectionStore

Associated Types

type Rep SessionID :: Type -> Type #

Show SessionID Source # 
Instance details

Defined in Data.Morpheus.Subscriptions.ClientConnectionStore

Eq SessionID Source # 
Instance details

Defined in Data.Morpheus.Subscriptions.ClientConnectionStore

Hashable SessionID Source # 
Instance details

Defined in Data.Morpheus.Subscriptions.ClientConnectionStore

type Rep SessionID Source # 
Instance details

Defined in Data.Morpheus.Subscriptions.ClientConnectionStore

type Rep SessionID = D1 ('MetaData "SessionID" "Data.Morpheus.Subscriptions.ClientConnectionStore" "morpheus-graphql-subscriptions-0.27.3-Jp3yrGVVM41CK0cJ4tH1CU" 'False) (C1 ('MetaCons "SessionID" 'PrefixI 'True) (S1 ('MetaSel ('Just "cid") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UUID) :*: S1 ('MetaSel ('Just "sid") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

publish :: (Monad m, Eq channel, Hashable channel, Show channel) => Event channel content -> ClientConnectionStore (Event channel content) m -> m () Source #

initDefaultStore :: (MonadIO m, MonadIO m2) => m2 (Store (Event ch con) m) Source #

initializes empty GraphQL state

publishEventWith :: (MonadIO m, Eq channel, Hashable channel, Show channel) => Store (Event channel cont) m -> Event channel cont -> m () Source #

empty :: Empty coll => coll #

toList :: ClientConnectionStore (Event channel content) m -> [(UUID, ClientConnection m)] Source #

connectionSessionIds :: ClientConnection m -> [Text] Source #

storedSessions :: ClientConnectionStore (Event channel content) m -> [(SessionID, ClientSession (Event channel content) m)] Source #

storedChannels :: ClientConnectionStore (Event channel content) m -> [(channel, [SessionID])] Source #

streamApp :: (Eq ch, Monad m, Hashable ch) => App (Event ch con) m -> Input api -> Output api (Event ch con) m Source #

data ApolloSubscription payload Source #

Constructors

ApolloSubscription 

Fields

Instances

Instances details
FromJSON a => FromJSON (ApolloSubscription a) Source # 
Instance details

Defined in Data.Morpheus.Subscriptions.Apollo

ToJSON a => ToJSON (ApolloSubscription a) Source # 
Instance details

Defined in Data.Morpheus.Subscriptions.Apollo

Generic (ApolloSubscription payload) Source # 
Instance details

Defined in Data.Morpheus.Subscriptions.Apollo

Associated Types

type Rep (ApolloSubscription payload) :: Type -> Type #

Methods

from :: ApolloSubscription payload -> Rep (ApolloSubscription payload) x #

to :: Rep (ApolloSubscription payload) x -> ApolloSubscription payload #

Show payload => Show (ApolloSubscription payload) Source # 
Instance details

Defined in Data.Morpheus.Subscriptions.Apollo

type Rep (ApolloSubscription payload) Source # 
Instance details

Defined in Data.Morpheus.Subscriptions.Apollo

type Rep (ApolloSubscription payload)