diff options
Diffstat (limited to 'Swiften/Serializer')
-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); |