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

index 51df35970b0f98efa8b2ad469b167d2bc302f61b..a666a76c086357ee96a65f5800d9989a8d0170e3 100644 (file)
@@ -9,6 +9,7 @@
 #include "message_sms.h"
 #include "short_message_manager.h"
 #include "message_storage_short_msg.h"
+#include "messaging_instance.h"
 
 namespace extension {
 namespace messaging {
@@ -192,12 +193,20 @@ static gboolean findFoldersCB(void* data)
 
     FoldersCallbackData *callback = static_cast<FoldersCallbackData*>(data);
 
-    // TODO create json array of folders
-    //JSObjectRef js_obj = MessagingUtil::vectorToJSObjectArray<FolderPtr,
-                //JSMessageFolder>(context, callback->getFolders());
+    auto json = callback->getJson();
+    picojson::object& obj = json->get<picojson::object>();
 
-    // TODO post success
-    //callback->callSuccessCallback(js_obj);
+    picojson::array array;
+    auto each = [&array](std::shared_ptr<MessageFolder> folder)->void {
+        array.push_back(MessagingUtil::folderToJson(folder));
+    };
+
+    auto folders = callback->getFolders();
+    for_each(folders.begin(), folders.end(), each);
+
+    obj[JSON_DATA] = picojson::value(array);
+    obj[JSON_ACTION] = picojson::value(JSON_CALLBACK_SUCCCESS);
+    MessagingInstance::getInstance().PostMessage(json->serialize().c_str());
 
     delete callback;
     callback = NULL;
index ae9f3afa7379d8c851da8aaff0a2424ead28e88f..90679be567d56128bdd496af395134c390e2cca7 100644 (file)
@@ -996,9 +996,9 @@ MessageStorage.prototype.findFolders = function () {
         cmd: 'MessageStorage_findFolders',
         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({