You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.0 KiB
34 lines
1.0 KiB
{-# LANGUAGE RecordWildCards #-} |
|
module Network.XMPP.Message |
|
( Message(..) |
|
, MessageError(..) |
|
, MessageType(..) |
|
, answerMessage |
|
, message |
|
) where |
|
|
|
import Data.XML.Types |
|
|
|
import Network.XMPP.Types |
|
|
|
-- | An empty message. |
|
message :: Message |
|
message = Message { messageID = Nothing |
|
, messageFrom = Nothing |
|
, messageTo = Nothing |
|
, messageLangTag = Nothing |
|
, messageType = Normal |
|
, messagePayload = [] |
|
} |
|
|
|
-- Produce an answer message with the given payload, switching the "from" and |
|
-- "to" attributes in the original message. |
|
answerMessage :: Message -> [Element] -> Maybe Message |
|
answerMessage Message{messageFrom = Just frm, ..} payload = |
|
Just Message{ messageFrom = messageTo |
|
, messageID = Nothing |
|
, messageTo = Just frm |
|
, messagePayload = payload |
|
, .. |
|
} |
|
answerMessage _ _ = Nothing |