[Messaging] findConversations for sms
authorMaciek Blim <m.blim@samsung.com>
Tue, 13 Jan 2015 10:10:38 +0000 (11:10 +0100)
committerMaciek Blim <m.blim@samsung.com>
Tue, 13 Jan 2015 11:39:03 +0000 (12:39 +0100)
Change-Id: I4d2c45476a466a6cc1da4eccf39438c7e43369e5
Signed-off-by: Maciek Blim <m.blim@samsung.com>
src/messaging/message_storage_short_msg.cc
src/messaging/messaging_api.js
src/messaging/short_message_manager.cc

index 77535fd..dcb3901 100644 (file)
@@ -136,8 +136,7 @@ static gboolean findConversationsTask(void* data) {
     LoggerD("Entered");
 
     ConversationCallbackData *callback = static_cast<ConversationCallbackData*>(data);
-    // TODO
-    //ShortMsgManager::getInstance().findConversations(callback);
+    ShortMsgManager::getInstance().findConversations(callback);
 
     return false;
 }
index a64dc3d..ae9f3af 100644 (file)
@@ -920,9 +920,9 @@ MessageStorage.prototype.findConversations = function () {
         cmd: 'MessageStorage_findConversations',
         args: {
             filter: args.filter,
-            sort: args.sort,
-            limit: args.limit,
-            offset: args.offset,
+            sort: args.sort || null,
+            limit: args.limit || null,
+            offset: args.offset || null,
             serviceId: self.service.id
         }
     }).then({
index e0c83d1..1aa56f9 100644 (file)
@@ -1026,15 +1026,22 @@ void ShortMsgManager::findConversations(ConversationCallbackData* callback)
     try {
         if (callback->isError()) {
             LoggerD("Calling error callback");
-            // TODO call error
-            //JSObjectRef errobj = JSWebAPIErrorFactory::makeErrorObject(context,
-                    //callback->getErrorName(), callback->getErrorMessage());
-            //callback->callErrorCallback(errobj);
+            MessagingInstance::getInstance().PostMessage(callback->getJson()->serialize().c_str());
         } else {
             LoggerD("Calling success callback");
-            // TODO call success
-            //callback->callSuccessCallback(MessagingUtil::vectorToJSObjectArray<
-                    //ConversationPtr, JSMessageConversation>(context, callback->getConversations()));
+            auto json = callback->getJson();
+            picojson::object& obj = json->get<picojson::object>();
+
+            std::vector<picojson::value> response;
+            auto conversations = callback->getConversations();
+            std::for_each(conversations.begin(), conversations.end(),
+                    [&response](std::shared_ptr<MessageConversation> &conversation) {
+                        response.push_back(MessagingUtil::conversationToJson(conversation));
+                    }
+            );
+            obj[JSON_DATA] = picojson::value(response);
+            obj[JSON_ACTION] = picojson::value(JSON_CALLBACK_SUCCCESS);
+            MessagingInstance::getInstance().PostMessage(json->serialize().c_str());
         }
     } catch (const common::PlatformException& err) {
         LoggerE("Error while calling findConversations callback: %s (%s)",