You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by mm...@apache.org on 2014/05/05 18:09:52 UTC

[05/50] [abbrv] git commit: search if contact does exist before remove

search if contact does exist before remove


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/commit/b52fafd2
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/tree/b52fafd2
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/diff/b52fafd2

Branch: refs/heads/cdvtest
Commit: b52fafd2465a1b175fe00b4f3caa2ffc88898791
Parents: 510955f
Author: Piotr Zalewa <pi...@zalewa.info>
Authored: Wed Dec 18 09:45:31 2013 +0100
Committer: Piotr Zalewa <pi...@zalewa.info>
Committed: Wed Dec 18 09:45:31 2013 +0100

----------------------------------------------------------------------
 src/firefoxos/ContactsProxy.js | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/blob/b52fafd2/src/firefoxos/ContactsProxy.js
----------------------------------------------------------------------
diff --git a/src/firefoxos/ContactsProxy.js b/src/firefoxos/ContactsProxy.js
index 13a3486..4d99428 100644
--- a/src/firefoxos/ContactsProxy.js
+++ b/src/firefoxos/ContactsProxy.js
@@ -252,13 +252,24 @@ function remove(successCB, errorCB, ids) {
     for (var i=0; i < ids.length; i++){
         // throw an error if no id provided
         if (!_hasId(ids[i])) {
-          errorCB(0);
+            console.error('FFOS: Attempt to remove unsaved contact');
+            errorCB(0);
+            return;
         }
-        var moz = new mozContact();
-        moz.id = ids[i];
-        var request = navigator.mozContacts.remove(moz);
-        request.onsuccess = successCB;
-        request.onerror = errorCB;
+        var search = navigator.mozContacts.find({
+            filterBy: ['id'], filterValue: ids[i], filterOp: 'equals'});
+        search.onsuccess = function() {
+            if (search.result.length === 0) {
+                console.error('FFOS: Attempt to remove a non existing contact');
+                errorCB(0);
+                return;
+            }
+            var moz = search.result[0];
+            var request = navigator.mozContacts.remove(moz);
+            request.onsuccess = successCB;
+            request.onerror = errorCB;
+        };
+        search.onerror = errorCB;
     }
 }