diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-07-21 13:07:59 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-07-21 13:07:59 (GMT) |
commit | 97ccbb55df2af9268f37e0bad7109d958acf6d19 (patch) | |
tree | eb15f961800b4e1753482ec4e944cb9102aa05f0 /Swiften/Serializer/PayloadSerializers | |
parent | 0c44bb6fa24900acef40dffdc65c8aecd3ee48ca (diff) | |
download | swift-contrib-97ccbb55df2af9268f37e0bad7109d958acf6d19.zip swift-contrib-97ccbb55df2af9268f37e0bad7109d958acf6d19.tar.bz2 |
Add more fields to the VCard element support.
Extra fields: Fullname, Given/Family name, E-Mail.
Diffstat (limited to 'Swiften/Serializer/PayloadSerializers')
-rw-r--r-- | Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp b/Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp index 26e1623..fbb0274 100644 --- a/Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp +++ b/Swiften/Serializer/PayloadSerializers/VCardSerializer.cpp @@ -12,6 +12,32 @@ VCardSerializer::VCardSerializer() : GenericPayloadSerializer<VCard>() { String VCardSerializer::serializePayload(boost::shared_ptr<VCard> vcard) const { XMLElement queryElement("vCard", "vcard-temp"); + if (!vcard->getFullName().isEmpty()) { + boost::shared_ptr<XMLElement> fullNameElement(new XMLElement("FN")); + fullNameElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(vcard->getFullName()))); + queryElement.addNode(fullNameElement); + } + if (!vcard->getGivenName().isEmpty() || !vcard->getFamilyName().isEmpty()) { + boost::shared_ptr<XMLElement> nameElement(new XMLElement("N")); + if (!vcard->getFamilyName().isEmpty()) { + boost::shared_ptr<XMLElement> familyNameElement(new XMLElement("FAMILY")); + familyNameElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(vcard->getFamilyName()))); + nameElement->addNode(familyNameElement); + } + if (!vcard->getGivenName().isEmpty()) { + boost::shared_ptr<XMLElement> givenNameElement(new XMLElement("GIVEN")); + givenNameElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(vcard->getGivenName()))); + nameElement->addNode(givenNameElement); + } + queryElement.addNode(nameElement); + } + if (!vcard->getEMail().isEmpty()) { + boost::shared_ptr<XMLElement> emailElement(new XMLElement("EMAIL")); + boost::shared_ptr<XMLElement> userIDElement(new XMLElement("USERID")); + userIDElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(vcard->getEMail()))); + emailElement->addNode(userIDElement); + queryElement.addNode(emailElement); + } if (!vcard->getNickname().isEmpty()) { boost::shared_ptr<XMLElement> nickElement(new XMLElement("NICKNAME")); nickElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(vcard->getNickname()))); |