[Messaging] converting JSON to MessageBody
authorMaciek Blim <m.blim@samsung.com>
Tue, 16 Dec 2014 12:11:58 +0000 (13:11 +0100)
committerMaciek Blim <m.blim@samsung.com>
Tue, 16 Dec 2014 18:19:02 +0000 (19:19 +0100)
Change-Id: I77f7a2a5217b919c06babe80dce24a0c8fe95826
Signed-off-by: Maciek Blim <m.blim@samsung.com>
src/messaging/message.cc
src/messaging/messaging_util.cc
src/messaging/messaging_util.h

index e77a1539ac171753222b16badea5d8379d1a6d77..4a06be3ebb85a1da3e7aef322d0f2fb317dfb856 100644 (file)
@@ -23,7 +23,7 @@ Message::Message():
     m_id(-1), m_id_set(false), m_conversation_id(-1),
     m_conversation_id_set(false), m_folder_id(-1), m_folder_id_set(false),
     m_type(UNDEFINED), m_timestamp_set(false), m_from_set(false),
-    //m_body(new(std::nothrow) MessageBody()),
+    m_body(new(std::nothrow) MessageBody()),
     m_service_id(0), m_is_read(false), m_has_attachment(false),
     m_high_priority(false), m_in_response(-1), m_in_response_set(false),
     m_service_id_set(false), m_status(STATUS_UNDEFINED),
@@ -194,6 +194,7 @@ void Message::setBody(std::shared_ptr<MessageBody>& body)
 {
     // while replacing message body old body should have some invalid id mark
     m_body->setMessageId(-1);
+
     m_body = body;
     if(m_id_set) {
         m_body->setMessageId(m_id);
index d7cbf1143d24b15ac1e22cd21e5902412bb8f967..37ed2d27fed40b7a17fe9dbd60819a00e13612ca 100644 (file)
@@ -45,6 +45,11 @@ const char* MESSAGE_ATTRIBUTE_IN_RESPONSE_TO = "inResponseTo";
 const char* MESSAGE_ATTRIBUTE_MESSAGE_STATUS = "messageStatus";
 const char* MESSAGE_ATTRIBUTE_ATTACHMENTS = "attachments";
 const char* MESSAGE_ATTRIBUTE_HAS_ATTACHMENT = "hasAttachment";
+const char* MESSAGE_ATTRIBUTE_MESSAGE_BODY = "body";
+
+const char* MESSAGE_BODY_ATTRIBUTE_LOADED = "loaded";
+const char* MESSAGE_BODY_ATTRIBUTE_PLAIN_BODY = "plainBody";
+const char* MESSAGE_BODY_ATTRIBUTE_HTML_BODY = "htmlBody";
 
 namespace {
 const std::string TYPE_SMS = "messaging.sms";
@@ -248,7 +253,25 @@ std::shared_ptr<Message> MessagingUtil::jsonToMessage(const picojson::value& jso
             MESSAGE_ATTRIBUTE_IS_HIGH_PRIORITY);
     message->setIsHighPriority(priority);
 
-    // TODO MessageBody
+    std::shared_ptr<MessageBody> body = std::shared_ptr<MessageBody>(new MessageBody());
+    picojson::object mb = MessagingUtil::getValueFromJSONObject<picojson::object>(
+            data, MESSAGE_ATTRIBUTE_MESSAGE_BODY);
+
+    bool loaded = MessagingUtil::getValueFromJSONObject<bool>(mb,
+            MESSAGE_BODY_ATTRIBUTE_LOADED);
+    body->setLoaded(loaded);
+
+    std::string html = MessagingUtil::getValueFromJSONObject<std::string>(mb,
+            MESSAGE_BODY_ATTRIBUTE_HTML_BODY);
+    body->setHtmlBody(html);
+
+    std::string plain = MessagingUtil::getValueFromJSONObject<std::string>(mb,
+            MESSAGE_BODY_ATTRIBUTE_PLAIN_BODY);
+    body->setPlainBody(plain);
+
+    message->setBody(body);
+
+    // TODO MessageAttachments
 
     return message;
 
index c620e008321f20d1efa18b0d58e139d1e1984818..5af379481f1d279d3df9b0d53aa655f77b287528 100644 (file)
@@ -40,6 +40,11 @@ extern const char* MESSAGE_ATTRIBUTE_IN_RESPONSE_TO;
 extern const char* MESSAGE_ATTRIBUTE_MESSAGE_STATUS;
 extern const char* MESSAGE_ATTRIBUTE_ATTACHMENTS;
 extern const char* MESSAGE_ATTRIBUTE_HAS_ATTACHMENT;
+extern const char* MESSAGE_ATTRIBUTE_MESSAGE_BODY;
+
+extern const char* MESSAGE_BODY_ATTRIBUTE_LOADED;
+extern const char* MESSAGE_BODY_ATTRIBUTE_PLAIN_BODY;
+extern const char* MESSAGE_BODY_ATTRIBUTE_HTML_BODY;
 
 enum MessageType {
     UNDEFINED = 0,