|
|
|
@ -130,7 +130,7 @@ type IQ = Either IQRequest IQResponse |
|
|
|
data IQRequest = IQRequest { iqRequestID :: Maybe StanzaID |
|
|
|
data IQRequest = IQRequest { iqRequestID :: Maybe StanzaID |
|
|
|
, iqRequestFrom :: Maybe From |
|
|
|
, iqRequestFrom :: Maybe From |
|
|
|
, iqRequestTo :: Maybe To |
|
|
|
, iqRequestTo :: Maybe To |
|
|
|
, iqRequestLangTag :: Maybe LangTag |
|
|
|
, iqRequestLangTag :: LangTag |
|
|
|
, iqRequestType :: IQRequestType |
|
|
|
, iqRequestType :: IQRequestType |
|
|
|
, iqRequestPayload :: Element } |
|
|
|
, iqRequestPayload :: Element } |
|
|
|
deriving (Show) |
|
|
|
deriving (Show) |
|
|
|
@ -145,7 +145,7 @@ type IQResponse = Either IQError IQResult |
|
|
|
data IQResult = IQResult { iqResultID :: Maybe StanzaID |
|
|
|
data IQResult = IQResult { iqResultID :: Maybe StanzaID |
|
|
|
, iqResultFrom :: Maybe From |
|
|
|
, iqResultFrom :: Maybe From |
|
|
|
, iqResultTo :: Maybe To |
|
|
|
, iqResultTo :: Maybe To |
|
|
|
, iqResultLangTag :: Maybe LangTag |
|
|
|
, iqResultLangTag :: LangTag |
|
|
|
, iqResultPayload :: Maybe Element } |
|
|
|
, iqResultPayload :: Maybe Element } |
|
|
|
deriving (Show) |
|
|
|
deriving (Show) |
|
|
|
|
|
|
|
|
|
|
|
@ -153,7 +153,7 @@ data IQResult = IQResult { iqResultID :: Maybe StanzaID |
|
|
|
data IQError = IQError { iqErrorID :: Maybe StanzaID |
|
|
|
data IQError = IQError { iqErrorID :: Maybe StanzaID |
|
|
|
, iqErrorFrom :: Maybe From |
|
|
|
, iqErrorFrom :: Maybe From |
|
|
|
, iqErrorTo :: Maybe To |
|
|
|
, iqErrorTo :: Maybe To |
|
|
|
, iqErrorLangTag :: Maybe LangTag |
|
|
|
, iqErrorLangTag :: LangTag |
|
|
|
, iqErrorPayload :: Maybe Element |
|
|
|
, iqErrorPayload :: Maybe Element |
|
|
|
, iqErrorStanzaError :: Maybe StanzaError } |
|
|
|
, iqErrorStanzaError :: Maybe StanzaError } |
|
|
|
deriving (Show) |
|
|
|
deriving (Show) |
|
|
|
@ -165,7 +165,7 @@ data IQError = IQError { iqErrorID :: Maybe StanzaID |
|
|
|
data Message = Message { messageID :: Maybe StanzaID |
|
|
|
data Message = Message { messageID :: Maybe StanzaID |
|
|
|
, messageFrom :: Maybe From |
|
|
|
, messageFrom :: Maybe From |
|
|
|
, messageTo :: Maybe To |
|
|
|
, messageTo :: Maybe To |
|
|
|
, messageXMLLang :: Maybe LangTag |
|
|
|
, messageXMLLang :: LangTag |
|
|
|
, messageType :: MessageType |
|
|
|
, messageType :: MessageType |
|
|
|
, messagePayload :: [Element] } |
|
|
|
, messagePayload :: [Element] } |
|
|
|
deriving (Show) |
|
|
|
deriving (Show) |
|
|
|
@ -174,7 +174,7 @@ data Message = Message { messageID :: Maybe StanzaID |
|
|
|
data MessageError = MessageError { messageErrorID :: StanzaID |
|
|
|
data MessageError = MessageError { messageErrorID :: StanzaID |
|
|
|
, messageErrorFrom :: Maybe From |
|
|
|
, messageErrorFrom :: Maybe From |
|
|
|
, messageErrorTo :: Maybe To |
|
|
|
, messageErrorTo :: Maybe To |
|
|
|
, messageErrorXMLLang :: Maybe LangTag |
|
|
|
, messageErrorXMLLang :: LangTag |
|
|
|
, messageErrorPayload :: Maybe [Element] |
|
|
|
, messageErrorPayload :: Maybe [Element] |
|
|
|
, messageErrorStanzaError :: StanzaError } |
|
|
|
, messageErrorStanzaError :: StanzaError } |
|
|
|
deriving (Show) |
|
|
|
deriving (Show) |
|
|
|
@ -208,7 +208,7 @@ instance Show MessageType where |
|
|
|
data Presence = Presence { presenceID :: Maybe StanzaID |
|
|
|
data Presence = Presence { presenceID :: Maybe StanzaID |
|
|
|
, presenceFrom :: Maybe From |
|
|
|
, presenceFrom :: Maybe From |
|
|
|
, presenceTo :: Maybe To |
|
|
|
, presenceTo :: Maybe To |
|
|
|
, presenceLangTag :: Maybe LangTag |
|
|
|
, presenceLangTag :: LangTag |
|
|
|
, presenceType :: Maybe PresenceType |
|
|
|
, presenceType :: Maybe PresenceType |
|
|
|
, presencePayload :: [Element] } |
|
|
|
, presencePayload :: [Element] } |
|
|
|
deriving (Show) |
|
|
|
deriving (Show) |
|
|
|
@ -217,7 +217,7 @@ data Presence = Presence { presenceID :: Maybe StanzaID |
|
|
|
data PresenceError = PresenceError { presenceErrorID :: Maybe StanzaID |
|
|
|
data PresenceError = PresenceError { presenceErrorID :: Maybe StanzaID |
|
|
|
, presenceErrorFrom :: Maybe From |
|
|
|
, presenceErrorFrom :: Maybe From |
|
|
|
, presenceErrorTo :: Maybe To |
|
|
|
, presenceErrorTo :: Maybe To |
|
|
|
, presenceErrorLangTag :: Maybe LangTag |
|
|
|
, presenceErrorLangTag :: LangTag |
|
|
|
, presenceErrorPayload :: Maybe [Element] |
|
|
|
, presenceErrorPayload :: Maybe [Element] |
|
|
|
, presenceErrorStanzaError :: StanzaError } |
|
|
|
, presenceErrorStanzaError :: StanzaError } |
|
|
|
deriving (Show) |
|
|
|
deriving (Show) |
|
|
|
@ -254,9 +254,11 @@ instance Show PresenceType where |
|
|
|
-- stream looks like <stanza-kind to='sender' type='error'>. These errors are |
|
|
|
-- stream looks like <stanza-kind to='sender' type='error'>. These errors are |
|
|
|
-- wrapped in the @StanzaError@ type. |
|
|
|
-- wrapped in the @StanzaError@ type. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- Sender XML is optional and is not included. |
|
|
|
|
|
|
|
|
|
|
|
data StanzaError = StanzaError { stanzaErrorType :: StanzaErrorType |
|
|
|
data StanzaError = StanzaError { stanzaErrorType :: StanzaErrorType |
|
|
|
, stanzaErrorCondition :: StanzaErrorCondition |
|
|
|
, stanzaErrorCondition :: StanzaErrorCondition |
|
|
|
, stanzaErrorText :: Maybe String |
|
|
|
, stanzaErrorText :: Maybe (Maybe LangTag, String) |
|
|
|
, stanzaErrorApplicationSpecificCondition :: |
|
|
|
, stanzaErrorApplicationSpecificCondition :: |
|
|
|
Maybe Element } deriving (Eq, Show) |
|
|
|
Maybe Element } deriving (Eq, Show) |
|
|
|
|
|
|
|
|
|
|
|
@ -269,7 +271,15 @@ data StanzaErrorType = Cancel | -- ^ Error is unrecoverable - do not retry |
|
|
|
Modify | -- ^ Change the data and retry |
|
|
|
Modify | -- ^ Change the data and retry |
|
|
|
Auth | -- ^ Provide credentials and retry |
|
|
|
Auth | -- ^ Provide credentials and retry |
|
|
|
Wait -- ^ Error is temporary - wait and retry |
|
|
|
Wait -- ^ Error is temporary - wait and retry |
|
|
|
deriving (Eq, Show) |
|
|
|
deriving (Eq) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
instance Show StanzaErrorType where |
|
|
|
|
|
|
|
show Cancel = "cancel" |
|
|
|
|
|
|
|
show Continue = "continue" |
|
|
|
|
|
|
|
show Modify = "modify" |
|
|
|
|
|
|
|
show Auth = "auth" |
|
|
|
|
|
|
|
show Wait = "wait" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- | |
|
|
|
-- | |
|
|
|
@ -311,7 +321,32 @@ data StanzaErrorCondition = BadRequest | -- ^ Malformed XML |
|
|
|
UndefinedCondition | -- ^ Application-specific |
|
|
|
UndefinedCondition | -- ^ Application-specific |
|
|
|
-- condition |
|
|
|
-- condition |
|
|
|
UnexpectedRequest -- ^ Badly timed request |
|
|
|
UnexpectedRequest -- ^ Badly timed request |
|
|
|
deriving (Eq, Show) |
|
|
|
deriving (Eq) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
instance Show StanzaErrorCondition where |
|
|
|
|
|
|
|
show BadRequest = "bad-request" |
|
|
|
|
|
|
|
show Conflict = "conflict" |
|
|
|
|
|
|
|
show FeatureNotImplemented = "feature-not-implemented" |
|
|
|
|
|
|
|
show Forbidden = "forbidden" |
|
|
|
|
|
|
|
show Gone = "gone" |
|
|
|
|
|
|
|
show InternalServerError = "internal-server-error" |
|
|
|
|
|
|
|
show ItemNotFound = "item-not-found" |
|
|
|
|
|
|
|
show JIDMalformed = "jid-malformed" |
|
|
|
|
|
|
|
show NotAcceptable = "not-acceptable" |
|
|
|
|
|
|
|
show NotAllowed = "not-allowed" |
|
|
|
|
|
|
|
show NotAuthorized = "not-authorized" |
|
|
|
|
|
|
|
show PaymentRequired = "payment-required" |
|
|
|
|
|
|
|
show RecipientUnavailable = "recipient-unavailable" |
|
|
|
|
|
|
|
show Redirect = "redirect" |
|
|
|
|
|
|
|
show RegistrationRequired = "registration-required" |
|
|
|
|
|
|
|
show RemoteServerNotFound = "remote-server-not-found" |
|
|
|
|
|
|
|
show RemoteServerTimeout = "remote-server-timeout" |
|
|
|
|
|
|
|
show ResourceConstraint = "resource-constraint" |
|
|
|
|
|
|
|
show ServiceUnavailable = "service-unavailable" |
|
|
|
|
|
|
|
show SubscriptionRequired = "subscription-required" |
|
|
|
|
|
|
|
show UndefinedCondition = "undefined-condition" |
|
|
|
|
|
|
|
show UnexpectedRequest = "unexpected-request" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|