diff options
author | Kevin Smith <git@kismith.co.uk> | 2012-02-06 12:12:00 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2012-02-06 13:39:43 (GMT) |
commit | f3d68b13e120f471326449f68aa4140587d444fc (patch) | |
tree | a13586525ee07d8aff8ec9ec459caf37fd5a941c /Swiften/Serializer/PayloadSerializers | |
parent | 42a1bbc568aab7e5b29c7fe16c13659291d01cae (diff) | |
download | swift-contrib-f3d68b13e120f471326449f68aa4140587d444fc.zip swift-contrib-f3d68b13e120f471326449f68aa4140587d444fc.tar.bz2 |
Parse mediated invite stuff
Diffstat (limited to 'Swiften/Serializer/PayloadSerializers')
-rw-r--r-- | Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp b/Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp index 96fba90..66ca5d0 100644 --- a/Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp +++ b/Swiften/Serializer/PayloadSerializers/MUCUserPayloadSerializer.cpp @@ -34,6 +34,28 @@ std::string MUCUserPayloadSerializer::serializePayload(boost::shared_ptr<MUCUser foreach (const MUCItem& item, payload->getItems()) { mucElement.addNode(MUCItemSerializer::itemToElement(item)); } + + if (payload->getPassword()) { + boost::shared_ptr<XMLElement> passwordElement = boost::make_shared<XMLElement>("password"); + passwordElement->addNode(boost::make_shared<XMLTextNode>(*payload->getPassword())); + } + + if (payload->getInvite()) { + MUCUserPayload::Invite invite = *payload->getInvite(); + boost::shared_ptr<XMLElement> inviteElement = boost::make_shared<XMLElement>("invite"); + if (invite.to.isValid()) { + inviteElement->setAttribute("to", invite.to.toString()); + } + if (invite.from.isValid()) { + inviteElement->setAttribute("from", invite.from.toString()); + } + if (!invite.reason.empty()) { + boost::shared_ptr<XMLElement> reasonElement = boost::make_shared<XMLElement>("reason"); + reasonElement->addNode(boost::make_shared<XMLTextNode>(invite.reason)); + } + mucElement.addNode(inviteElement); + } + boost::shared_ptr<Payload> childPayload = payload->getPayload(); if (childPayload) { PayloadSerializer* serializer = serializers->getPayloadSerializer(childPayload); |