Safe Haskell | None |
---|---|
Language | Haskell2010 |
Hasura.GraphQL.Transport.WebSocket.Protocol
Description
This file contains types for both the websocket protocols (Apollo) and (graphql-ws) | See Apollo: https://github.com/apollographql/subscriptions-transport-ws/blob/master/PROTOCOL.md | See graphql-ws: https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md
Synopsis
- data WSSubProtocol
- showSubProtocol :: WSSubProtocol -> String
- toWSSubProtocol :: String -> WSSubProtocol
- newtype OperationId = OperationId {
- unOperationId :: Text
- unsafeMkOperationId :: Text -> OperationId
- data ServerMsgType
- data ConnParams = ConnParams {
- _cpHeaders :: Maybe (HashMap Text Text)
- data StartMsg = StartMsg {
- _smId :: !OperationId
- _smPayload :: !GQLReqUnparsed
- data StopMsg = StopMsg {
- _stId :: OperationId
- data PingPongPayload = PingPongPayload {
- _smMessage :: !(Maybe Text)
- keepAliveMessage :: PingPongPayload
- data SubscribeMsg = SubscribeMsg {}
- data ClientMsg
- = CMConnInit !(Maybe ConnParams)
- | CMStart !StartMsg
- | CMStop !StopMsg
- | CMConnTerm
- | CMPing !(Maybe PingPongPayload)
- | CMPong !(Maybe PingPongPayload)
- data DataMsg = DataMsg {
- _dmId :: !OperationId
- _dmPayload :: !GQResponse
- data ErrorMsg = ErrorMsg {
- _emId :: !OperationId
- _emPayload :: !Value
- newtype CompletionMsg = CompletionMsg {}
- newtype ConnErrMsg = ConnErrMsg {
- unConnErrMsg :: Text
- data ServerErrorMsg = ServerErrorMsg {
- unServerErrorMsg :: Text
- data ServerMsg
- data ServerErrorCode
- encodeServerErrorMsg :: ServerErrorCode -> ByteString
- encodeServerMsg :: ServerMsg -> ByteString
- data WSConnInitTimerStatus
- type WSConnInitTimer = (TVar WSConnInitTimerStatus, TMVar ())
- getWSTimerState :: WSConnInitTimer -> IO WSConnInitTimerStatus
- getNewWSTimer :: Seconds -> IO WSConnInitTimer
Documentation
data WSSubProtocol Source #
Instances
Eq WSSubProtocol Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods (==) :: WSSubProtocol -> WSSubProtocol -> Bool # (/=) :: WSSubProtocol -> WSSubProtocol -> Bool # | |
Show WSSubProtocol Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods showsPrec :: Int -> WSSubProtocol -> ShowS # show :: WSSubProtocol -> String # showList :: [WSSubProtocol] -> ShowS # |
newtype OperationId Source #
Constructors
OperationId | |
Fields
|
Instances
Eq OperationId Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol | |
Show OperationId Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods showsPrec :: Int -> OperationId -> ShowS # show :: OperationId -> String # showList :: [OperationId] -> ShowS # | |
IsString OperationId Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods fromString :: String -> OperationId # | |
Hashable OperationId Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol | |
FromJSON OperationId Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol | |
ToJSON OperationId Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods toJSON :: OperationId -> Value toEncoding :: OperationId -> Encoding toJSONList :: [OperationId] -> Value toEncodingList :: [OperationId] -> Encoding |
unsafeMkOperationId :: Text -> OperationId Source #
data ServerMsgType Source #
Constructors
SMT_GQL_CONNECTION_KEEP_ALIVE | |
SMT_GQL_CONNECTION_ERROR | |
SMT_GQL_DATA | |
SMT_GQL_NEXT | |
SMT_GQL_PING | |
SMT_GQL_PONG | |
SMT_GQL_CONNECTION_ACK | |
SMT_GQL_ERROR | |
SMT_GQL_COMPLETE |
Instances
Eq ServerMsgType Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods (==) :: ServerMsgType -> ServerMsgType -> Bool # (/=) :: ServerMsgType -> ServerMsgType -> Bool # | |
Show ServerMsgType Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods showsPrec :: Int -> ServerMsgType -> ShowS # show :: ServerMsgType -> String # showList :: [ServerMsgType] -> ShowS # | |
ToJSON ServerMsgType Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods toJSON :: ServerMsgType -> Value toEncoding :: ServerMsgType -> Encoding toJSONList :: [ServerMsgType] -> Value toEncodingList :: [ServerMsgType] -> Encoding |
data ConnParams Source #
Constructors
ConnParams | |
Fields
|
Instances
Eq ConnParams Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol | |
Show ConnParams Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods showsPrec :: Int -> ConnParams -> ShowS # show :: ConnParams -> String # showList :: [ConnParams] -> ShowS # | |
FromJSON ConnParams Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol | |
ToJSON ConnParams Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods toJSON :: ConnParams -> Value toEncoding :: ConnParams -> Encoding toJSONList :: [ConnParams] -> Value toEncodingList :: [ConnParams] -> Encoding |
Constructors
StartMsg | |
Fields
|
Instances
Eq StartMsg Source # | |
Show StartMsg Source # | |
FromJSON StartMsg Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol | |
ToJSON StartMsg Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods toEncoding :: StartMsg -> Encoding toJSONList :: [StartMsg] -> Value toEncodingList :: [StartMsg] -> Encoding |
Constructors
StopMsg | |
Fields
|
Instances
Eq StopMsg Source # | |
Show StopMsg Source # | |
FromJSON StopMsg Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol | |
ToJSON StopMsg Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods toEncoding :: StopMsg -> Encoding toJSONList :: [StopMsg] -> Value toEncodingList :: [StopMsg] -> Encoding |
data PingPongPayload Source #
Constructors
PingPongPayload | |
Fields
|
Instances
Eq PingPongPayload Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods (==) :: PingPongPayload -> PingPongPayload -> Bool # (/=) :: PingPongPayload -> PingPongPayload -> Bool # | |
Show PingPongPayload Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods showsPrec :: Int -> PingPongPayload -> ShowS # show :: PingPongPayload -> String # showList :: [PingPongPayload] -> ShowS # | |
FromJSON PingPongPayload Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods parseJSON :: Value -> Parser PingPongPayload parseJSONList :: Value -> Parser [PingPongPayload] | |
ToJSON PingPongPayload Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods toJSON :: PingPongPayload -> Value toEncoding :: PingPongPayload -> Encoding toJSONList :: [PingPongPayload] -> Value toEncodingList :: [PingPongPayload] -> Encoding |
data SubscribeMsg Source #
Constructors
SubscribeMsg | |
Fields
|
Constructors
CMConnInit !(Maybe ConnParams) | |
CMStart !StartMsg | |
CMStop !StopMsg | |
CMConnTerm | |
CMPing !(Maybe PingPongPayload) | |
CMPong !(Maybe PingPongPayload) |
Constructors
DataMsg | |
Fields
|
Constructors
ErrorMsg | |
Fields
|
newtype CompletionMsg Source #
Constructors
CompletionMsg | |
Fields |
Instances
Eq CompletionMsg Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods (==) :: CompletionMsg -> CompletionMsg -> Bool # (/=) :: CompletionMsg -> CompletionMsg -> Bool # | |
Show CompletionMsg Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods showsPrec :: Int -> CompletionMsg -> ShowS # show :: CompletionMsg -> String # showList :: [CompletionMsg] -> ShowS # | |
FromJSON CompletionMsg Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol | |
ToJSON CompletionMsg Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods toJSON :: CompletionMsg -> Value toEncoding :: CompletionMsg -> Encoding toJSONList :: [CompletionMsg] -> Value toEncodingList :: [CompletionMsg] -> Encoding |
newtype ConnErrMsg Source #
Constructors
ConnErrMsg | |
Fields
|
Instances
Eq ConnErrMsg Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol | |
Show ConnErrMsg Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods showsPrec :: Int -> ConnErrMsg -> ShowS # show :: ConnErrMsg -> String # showList :: [ConnErrMsg] -> ShowS # | |
IsString ConnErrMsg Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods fromString :: String -> ConnErrMsg # | |
FromJSON ConnErrMsg Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol | |
ToJSON ConnErrMsg Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods toJSON :: ConnErrMsg -> Value toEncoding :: ConnErrMsg -> Encoding toJSONList :: [ConnErrMsg] -> Value toEncodingList :: [ConnErrMsg] -> Encoding |
data ServerErrorMsg Source #
Constructors
ServerErrorMsg | |
Fields
|
Constructors
SMConnAck | |
SMConnKeepAlive | |
SMConnErr !ConnErrMsg | |
SMData !DataMsg | |
SMErr !ErrorMsg | |
SMComplete !CompletionMsg | |
SMNext !DataMsg | |
SMPing !(Maybe PingPongPayload) | |
SMPong !(Maybe PingPongPayload) |
data ServerErrorCode Source #
This is sent from the server to the client while closing the websocket on encountering an error.
Constructors
ProtocolError1002 | |
GenericError4400 !String | |
Unauthorized4401 | |
Forbidden4403 | |
ConnectionInitTimeout4408 | |
NonUniqueSubscription4409 !OperationId | |
TooManyRequests4429 |
Instances
Show ServerErrorCode Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods showsPrec :: Int -> ServerErrorCode -> ShowS # show :: ServerErrorCode -> String # showList :: [ServerErrorCode] -> ShowS # |
data WSConnInitTimerStatus Source #
Instances
Eq WSConnInitTimerStatus Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods (==) :: WSConnInitTimerStatus -> WSConnInitTimerStatus -> Bool # (/=) :: WSConnInitTimerStatus -> WSConnInitTimerStatus -> Bool # | |
Show WSConnInitTimerStatus Source # | |
Defined in Hasura.GraphQL.Transport.WebSocket.Protocol Methods showsPrec :: Int -> WSConnInitTimerStatus -> ShowS # show :: WSConnInitTimerStatus -> String # showList :: [WSConnInitTimerStatus] -> ShowS # |
type WSConnInitTimer = (TVar WSConnInitTimerStatus, TMVar ()) Source #
getNewWSTimer :: Seconds -> IO WSConnInitTimer Source #