[DataControl] Refactor js file 63/153863/4
authorLukasz Bardeli <l.bardeli@samsung.com>
Thu, 5 Oct 2017 09:41:12 +0000 (11:41 +0200)
committerLukasz Bardeli <l.bardeli@samsung.com>
Thu, 5 Oct 2017 09:41:12 +0000 (11:41 +0200)
[Verification] TCT passrate didn't change

Change-Id: I5d62fec4dca6b48da9d03ae3bfc29d681256e9b7
Signed-off-by: Lukasz Bardeli <l.bardeli@samsung.com>
src/datacontrol/datacontrol_api.js

index 5d60996..fd7802f 100755 (executable)
  *    limitations under the License.
  */
 
-tizen.debug = extension;
-
-var JSON_ = xwalk.JSON;
 var validator_ = xwalk.utils.validator;
 var converter_ = xwalk.utils.converter;
 var types_ = validator_.Types;
 var type_ = xwalk.utils.type;
 var native_ = new xwalk.utils.NativeManager(extension);
 
-var callbackId = 0;
-var callbacks = {};
-var listeners_ = {};
-
 var DATA_CONTROL_MANAGER_LISTENER_ID = 'DataControlManagerChangeCallback';
 
 var DataType = {
@@ -34,30 +27,20 @@ var DataType = {
   'SQL': 'SQL'
 };
 
-var EventType = {
-  'SQL_UPDATE': 'SQL_UPDATE',
-  'SQL_INSERT': 'SQL_INSERT',
-  'SQL_DELETE': 'SQL_DELETE',
-  'MAP_SET': 'MAP_SET',
-  'MAP_ADD': 'MAP_ADD',
-  'MAP_REMOVE': 'MAP_REMOVE'
-};
-
-
 var DataControlListenersManager = (function() {
 
   function changeEvent(event) {
     var successCallback;
 
     if (DataType.SQL === event.eventType) {
-      if (type_.isEmptyObject(this._SQLDataControlCallbackMap)) {
+      if (type_.isEmptyObject(this._SQLDataControlCbMap)) {
         return;
       }
-      for (var listenerId in this._SQLDataControlCallbackMap) {
-        if (this._SQLDataControlCallbackMap.hasOwnProperty(listenerId)) {
-          if (this._SQLDataControlCallbackMap[listenerId].providerId === event.providerId &&
-              this._SQLDataControlCallbackMap[listenerId].dataId === event.dataId) {
-            successCallback = this._SQLDataControlCallbackMap[listenerId].changeCallback;
+      for (var listenerId in this._SQLDataControlCbMap) {
+        if (this._SQLDataControlCbMap.hasOwnProperty(listenerId)) {
+          if (this._SQLDataControlCbMap[listenerId].providerId === event.providerId &&
+              this._SQLDataControlCbMap[listenerId].dataId === event.dataId) {
+            successCallback = this._SQLDataControlCbMap[listenerId].changeCallback;
             if (type_.isFunction(successCallback)) {
               successCallback(event.type, {columns: event.columns, values: event.values});
             }
@@ -65,14 +48,14 @@ var DataControlListenersManager = (function() {
         }
       }
     } else {
-      if (type_.isEmptyObject(this._MAPDataControlCallbackMap)) {
+      if (type_.isEmptyObject(this._MAPDataControlCbMap)) {
         return;
       }
-      for (var listenerId in this._MAPDataControlCallbackMap) {
-        if (this._MAPDataControlCallbackMap.hasOwnProperty(listenerId)) {
-          if (this._MAPDataControlCallbackMap[listenerId].providerId === event.providerId &&
-              this._MAPDataControlCallbackMap[listenerId].dataId === event.dataId) {
-            successCallback = this._MAPDataControlCallbackMap[listenerId].changeCallback;
+      for (var listenerId in this._MAPDataControlCbMap) {
+        if (this._MAPDataControlCbMap.hasOwnProperty(listenerId)) {
+          if (this._MAPDataControlCbMap[listenerId].providerId === event.providerId &&
+              this._MAPDataControlCbMap[listenerId].dataId === event.dataId) {
+            successCallback = this._MAPDataControlCbMap[listenerId].changeCallback;
             if (type_.isFunction(successCallback)) {
               successCallback(event.type, {columns: event.columns, values: event.values});
             }
@@ -83,8 +66,8 @@ var DataControlListenersManager = (function() {
   }
 
   function _DataControlListenerManager() {
-    this._SQLDataControlCallbackMap = {};
-    this._MAPDataControlCallbackMap = {};
+    this._SQLDataControlCbMap = {};
+    this._MAPDataControlCbMap = {};
     this.lastListenerId = 0;
     this.changeEvent = changeEvent.bind(this);
   }
@@ -92,19 +75,19 @@ var DataControlListenersManager = (function() {
   _DataControlListenerManager.prototype.addChangeListener = function(type, providerId, dataId, changeCallback, errorCallback) {
     var _realWatchId = 0;
     if (DataType.SQL === type) {
-      for (var i in this._SQLDataControlCallbackMap) {
-        if (this._SQLDataControlCallbackMap.hasOwnProperty(i) &&
-            this._SQLDataControlCallbackMap[i].providerId === providerId &&
-            this._SQLDataControlCallbackMap[i].dataId === dataId) {
-          _realWatchId = this._SQLDataControlCallbackMap[i].realWatchId;
+      for (var i in this._SQLDataControlCbMap) {
+        if (this._SQLDataControlCbMap.hasOwnProperty(i) &&
+            this._SQLDataControlCbMap[i].providerId === providerId &&
+            this._SQLDataControlCbMap[i].dataId === dataId) {
+          _realWatchId = this._SQLDataControlCbMap[i].realWatchId;
         }
       }
     } else {
-      for (var i in this._MAPDataControlCallbackMap) {
-        if (this._MAPDataControlCallbackMap.hasOwnProperty(i) &&
-            this._MAPDataControlCallbackMap[i].providerId === providerId &&
-            this._MAPDataControlCallbackMap[i].dataId === dataId) {
-          _realWatchId = this._MAPDataControlCallbackMap[i].realWatchId;
+      for (var i in this._MAPDataControlCbMap) {
+        if (this._MAPDataControlCbMap.hasOwnProperty(i) &&
+            this._MAPDataControlCbMap[i].providerId === providerId &&
+            this._MAPDataControlCbMap[i].dataId === dataId) {
+          _realWatchId = this._MAPDataControlCbMap[i].realWatchId;
         }
       }
     }
@@ -115,12 +98,12 @@ var DataControlListenersManager = (function() {
           native_.callIfPossible(errorCallback, native_.getErrorObject(result));
           return;
         }
-      }
+      };
       var result =
-        callNativeWithCallback('DataControlConsumerObject_addChangeListener', {
-                               providerId: providerId,
-                               dataId: dataId,
-                               type: type
+        native_.call('DataControlConsumerObject_addChangeListener', {
+          providerId: providerId,
+          dataId: dataId,
+          type: type
         }, callback);
 
       if (native_.isFailure(result)) {
@@ -128,22 +111,22 @@ var DataControlListenersManager = (function() {
       } else {
         _realWatchId = converter_.toLong(result.watchId, true);
       }
-      if (type_.isEmptyObject(this._SQLDataControlCallbackMap) &&
-          type_.isEmptyObject(this._MAPDataControlCallbackMap)) {
-        AddListener(DATA_CONTROL_MANAGER_LISTENER_ID, this.changeEvent);
+      if (type_.isEmptyObject(this._SQLDataControlCbMap) &&
+          type_.isEmptyObject(this._MAPDataControlCbMap)) {
+        native_.addListener(DATA_CONTROL_MANAGER_LISTENER_ID, this.changeEvent);
       }
     }
 
     if (DataType.SQL === type) {
-      this._SQLDataControlCallbackMap[++this.lastListenerId] = {'providerId': providerId,
-                                                                'dataId': dataId,
-                                                                'changeCallback': changeCallback,
-                                                                'realWatchId': _realWatchId};
+      this._SQLDataControlCbMap[++this.lastListenerId] = {'providerId': providerId,
+        'dataId': dataId,
+        'changeCallback': changeCallback,
+        'realWatchId': _realWatchId};
     } else {
-      this._MAPDataControlCallbackMap[++this.lastListenerId] = {'providerId': providerId,
-                                                                'dataId': dataId,
-                                                                'changeCallback': changeCallback,
-                                                                'realWatchId': _realWatchId};
+      this._MAPDataControlCbMap[++this.lastListenerId] = {'providerId': providerId,
+        'dataId': dataId,
+        'changeCallback': changeCallback,
+        'realWatchId': _realWatchId};
     }
 
     return this.lastListenerId;
@@ -151,40 +134,42 @@ var DataControlListenersManager = (function() {
 
   _DataControlListenerManager.prototype.removeChangeListener = function(type, providerId, dataId, listenerId) {
     var _realWatchId = 0;
-    if (DataType.SQL === type && !type_.isUndefined(this._SQLDataControlCallbackMap[listenerId])) {
-      _realWatchId = this._SQLDataControlCallbackMap[listenerId].realWatchId;
-      delete this._SQLDataControlCallbackMap[listenerId];
-      for (var i in this._SQLDataControlCallbackMap) {
-        if (this._SQLDataControlCallbackMap.hasOwnProperty(i) &&
-            this._SQLDataControlCallbackMap[i].realWatchId === _realWatchId) {
+    if (DataType.SQL === type &&
+        !type_.isUndefined(this._SQLDataControlCbMap[listenerId])) {
+      _realWatchId = this._SQLDataControlCbMap[listenerId].realWatchId;
+      delete this._SQLDataControlCbMap[listenerId];
+      for (var i in this._SQLDataControlCbMap) {
+        if (this._SQLDataControlCbMap.hasOwnProperty(i) &&
+            this._SQLDataControlCbMap[i].realWatchId === _realWatchId) {
           return;
         }
       }
-    } else if (DataType.MAP === type && !type_.isUndefined(this._MAPDataControlCallbackMap[listenerId])) {
-      _realWatchId = this._MAPDataControlCallbackMap[listenerId].realWatchId;
-      delete this._MAPDataControlCallbackMap[listenerId];
-      for (var i in this._MAPDataControlCallbackMap) {
-        if (this._MAPDataControlCallbackMap.hasOwnProperty(i) &&
-            this._MAPDataControlCallbackMap[i].realWatchId === _realWatchId) {
+    } else if (DataType.MAP === type &&
+        !type_.isUndefined(this._MAPDataControlCbMap[listenerId])) {
+      _realWatchId = this._MAPDataControlCbMap[listenerId].realWatchId;
+      delete this._MAPDataControlCbMap[listenerId];
+      for (var i in this._MAPDataControlCbMap) {
+        if (this._MAPDataControlCbMap.hasOwnProperty(i) &&
+            this._MAPDataControlCbMap[i].realWatchId === _realWatchId) {
           return;
         }
       }
     } else {
-      console.log("Type invalid or listener was not added")
+      console.log('Type invalid or listener was not added');
       return;
     }
 
     if (0 != _realWatchId) {
-      callNative('DataControlConsumerObject_removeChangeListener',{
+      native_.call('DataControlConsumerObject_removeChangeListener',{
         providerId: providerId,
         dataId: dataId,
         watchId: _realWatchId,
         type: type
-      })
+      });
 
-      if (type_.isEmptyObject(this._SQLDataControlCallbackMap) &&
-          type_.isEmptyObject(this._MAPDataControlCallbackMap)) {
-        RemoveListener(DATA_CONTROL_MANAGER_LISTENER_ID);
+      if (type_.isEmptyObject(this._SQLDataControlCbMap) &&
+          type_.isEmptyObject(this._MAPDataControlCbMap)) {
+        native_.removeListener(DATA_CONTROL_MANAGER_LISTENER_ID);
       }
     }
   };
@@ -195,79 +180,6 @@ var DataControlListenersManager = (function() {
 
 var listenersManager = new DataControlListenersManager();
 
-// TODO refactor setMessageListener to start using common functionality
-extension.setMessageListener(function(json) {
-  var result = JSON_.parse(json);
-  if (result.hasOwnProperty("callbackId")) {
-    var callback = callbacks[result['callbackId']];
-    setTimeout(function() {
-      callback(result);
-      delete callbacks[result['callbackId']];
-    }, 0);
-  }
-  if (result.hasOwnProperty("listenerId")) {
-    var id = result['listenerId'];
-    delete result['listenerId'];
-    var f = listeners_[id];
-    setTimeout(function() {
-      f(result);
-    }, 0);
-  }
-});
-
-function nextCallbackId() {
-  return callbackId++;
-}
-
-function callNative(cmd, args) {
-  var json = {'cmd': cmd, 'args': args};
-  var argjson = JSON_.stringify(json);
-  var resultString = extension.internal.sendSyncMessage(argjson);
-  var result = JSON_.parse(resultString);
-
-  if (typeof result !== 'object') {
-    throw new WebAPIException(WebAPIException.UNKNOWN_ERR);
-  }
-
-  if (result['status'] == 'success') {
-    if (result['result']) {
-      return result['result'];
-    }
-    return true;
-  } else if (result['status'] == 'error') {
-    var err = result['error'];
-    if (err) {
-      throw new WebAPIException(err);
-    }
-    return false;
-  }
-}
-
-
-function callNativeWithCallback(cmd, args, callback) {
-  if (callback) {
-    var id = nextCallbackId();
-    args['callbackId'] = id;
-    callbacks[id] = callback;
-  }
-
-  return callNative(cmd, args);
-}
-
-function AddListener(name, callback) {
-  if (!type_.isString(name) || !name.length) {
-    throw new WebAPIException(WebAPIException.TYPE_MISMATCH_ERR);
-  }
-
-  listeners_[name] = callback;
-};
-
-function RemoveListener(name) {
-  if (listeners_.hasOwnProperty(name)) {
-    delete listeners_[name];
-  }
-};
-
 function SetReadOnlyProperty(obj, n, v) {
   Object.defineProperty(obj, n, {value: v, writable: false});
 }
@@ -311,7 +223,8 @@ function DataControlConsumerObject() {
 
 DataControlConsumerObject.prototype.addChangeListener = function() {
   var args = validator_.validateArgs(arguments, [
-    {'name': 'dataChangeCallback', 'type': types_.FUNCTION, optional: false, nullable: false},
+    {'name': 'dataChangeCallback', 'type': types_.FUNCTION, optional: false,
+      nullable: false},
     {'name': 'errorCallback', 'type': types_.FUNCTION, optional: true, nullable: true}
   ]);
 
@@ -321,8 +234,8 @@ DataControlConsumerObject.prototype.addChangeListener = function() {
   }
 
   return listenersManager.addChangeListener(type, this.providerId, this.dataId,
-                                            args.dataChangeCallback, args.errorCallback);
-}
+    args.dataChangeCallback, args.errorCallback);
+};
 
 DataControlConsumerObject.prototype.removeChangeListener = function() {
 
@@ -336,7 +249,7 @@ DataControlConsumerObject.prototype.removeChangeListener = function() {
   }
 
   listenersManager.removeChangeListener(type, this.providerId, this.dataId, args.watchId);
-}
+};
 
 function SQLDataControlConsumer() {
   // constructor of SQLDataControlConsumer
@@ -345,7 +258,7 @@ function SQLDataControlConsumer() {
 SQLDataControlConsumer.prototype = new DataControlConsumerObject();
 SQLDataControlConsumer.prototype.constructor = SQLDataControlConsumer;
 
-SQLDataControlConsumer.prototype.insert = function(reqId, insertionData) {
+SQLDataControlConsumer.prototype.insert = function() {
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'insertionData', 'type': types_.DICTIONARY},
@@ -365,9 +278,9 @@ SQLDataControlConsumer.prototype.insert = function(reqId, insertionData) {
     'reqId': args.reqId,
     'insertionData': args.insertionData
   };
-  try {
-    var syncResult =
-        callNativeWithCallback('SQLDataControlConsumer_insert', nativeParam, function(result) {
+
+  var syncResult =
+    native_.call('SQLDataControlConsumer_insert', nativeParam, function(result) {
       if (result.status == 'success') {
         if (args.successCallback) {
           args.successCallback(result['requestId'], result['result']);
@@ -381,12 +294,13 @@ SQLDataControlConsumer.prototype.insert = function(reqId, insertionData) {
         }
       }
     });
-  } catch (e) {
-    throw e;
+
+  if (native_.isFailure(syncResult)) {
+    throw native_.getErrorObject(syncResult);
   }
 };
 
-SQLDataControlConsumer.prototype.update = function(reqId, updateData, where) {
+SQLDataControlConsumer.prototype.update = function() {
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'updateData', 'type': types_.DICTIONARY},
@@ -402,9 +316,9 @@ SQLDataControlConsumer.prototype.update = function(reqId, updateData, where) {
     'where': args.where,
     'updateData': args.updateData
   };
-  try {
-    var syncResult =
-        callNativeWithCallback('SQLDataControlConsumer_update', nativeParam, function(result) {
+
+  var syncResult =
+    native_.call('SQLDataControlConsumer_update', nativeParam, function(result) {
       if (result.status == 'success') {
         if (args.successCallback) {
           args.successCallback(result['requestId']);
@@ -418,13 +332,13 @@ SQLDataControlConsumer.prototype.update = function(reqId, updateData, where) {
         }
       }
     });
-  } catch (e) {
-    throw e;
-  }
 
+  if (native_.isFailure(syncResult)) {
+    throw native_.getErrorObject(syncResult);
+  }
 };
 
-SQLDataControlConsumer.prototype.remove = function(reqId, where) {
+SQLDataControlConsumer.prototype.remove = function() {
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'where', 'type': types_.STRING},
@@ -438,9 +352,9 @@ SQLDataControlConsumer.prototype.remove = function(reqId, where) {
     'reqId': args.reqId,
     'where': args.where
   };
-  try {
-    var syncResult =
-        callNativeWithCallback('SQLDataControlConsumer_remove', nativeParam, function(result) {
+
+  var syncResult =
+    native_.call('SQLDataControlConsumer_remove', nativeParam, function(result) {
       if (result.status == 'success') {
         if (args.successCallback) {
           args.successCallback(result['requestId']);
@@ -454,13 +368,14 @@ SQLDataControlConsumer.prototype.remove = function(reqId, where) {
         }
       }
     });
-  } catch (e) {
-    throw e;
+
+  if (native_.isFailure(syncResult)) {
+    throw native_.getErrorObject(syncResult);
   }
 
 };
 
-SQLDataControlConsumer.prototype.select = function(reqId, columns, where, successCallback) {
+SQLDataControlConsumer.prototype.select = function() {
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'columns', 'type': types_.ARRAY},
@@ -489,9 +404,8 @@ SQLDataControlConsumer.prototype.select = function(reqId, columns, where, succes
     nativeParam['order'] = args.order;
   }
 
-  try {
-    var syncResult =
-        callNativeWithCallback('SQLDataControlConsumer_select', nativeParam, function(result) {
+  var syncResult =
+    native_.call('SQLDataControlConsumer_select', nativeParam, function(result) {
       if (result.status == 'success') {
         args.successCallback(result['result'], result['requestId']);
       }
@@ -503,11 +417,10 @@ SQLDataControlConsumer.prototype.select = function(reqId, columns, where, succes
         }
       }
     });
-    // if you need synchronous result from native function using 'syncResult'.
-  } catch (e) {
-    throw e;
-  }
 
+  if (native_.isFailure(syncResult)) {
+    throw native_.getErrorObject(syncResult);
+  }
 };
 
 
@@ -518,7 +431,7 @@ function MappedDataControlConsumer() {
 MappedDataControlConsumer.prototype = new DataControlConsumerObject();
 MappedDataControlConsumer.prototype.constructor = MappedDataControlConsumer;
 
-MappedDataControlConsumer.prototype.addValue = function(reqId, key, value) {
+MappedDataControlConsumer.prototype.addValue = function() {
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'key', 'type': types_.STRING},
@@ -534,9 +447,9 @@ MappedDataControlConsumer.prototype.addValue = function(reqId, key, value) {
     'key': args.key,
     'value': args.value
   };
-  try {
-    var syncResult =
-        callNativeWithCallback('MappedDataControlConsumer_addValue', nativeParam, function(result) {
+
+  var syncResult =
+    native_.call('MappedDataControlConsumer_addValue', nativeParam, function(result) {
       if (result.status == 'success') {
         if (args.successCallback) {
           args.successCallback(result['requestId']);
@@ -550,13 +463,14 @@ MappedDataControlConsumer.prototype.addValue = function(reqId, key, value) {
         }
       }
     });
-  } catch (e) {
-    throw e;
+
+  if (native_.isFailure(syncResult)) {
+    throw native_.getErrorObject(syncResult);
   }
 
 };
 
-MappedDataControlConsumer.prototype.removeValue = function(reqId, key, value, successCallback) {
+MappedDataControlConsumer.prototype.removeValue = function() {
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'key', 'type': types_.STRING},
@@ -572,9 +486,9 @@ MappedDataControlConsumer.prototype.removeValue = function(reqId, key, value, su
     'key': args.key,
     'value': args.value
   };
-  try {
-    var syncResult =
-        callNativeWithCallback('MappedDataControlConsumer_removeValue', nativeParam, function(result) {
+
+  var syncResult =
+    native_.call('MappedDataControlConsumer_removeValue', nativeParam, function(result) {
       if (result.status == 'success') {
         args.successCallback(result['requestId']);
       }
@@ -586,13 +500,14 @@ MappedDataControlConsumer.prototype.removeValue = function(reqId, key, value, su
         }
       }
     });
-  } catch (e) {
-    throw e;
+
+  if (native_.isFailure(syncResult)) {
+    throw native_.getErrorObject(syncResult);
   }
 
 };
 
-MappedDataControlConsumer.prototype.getValue = function(reqId, key, successCallback) {
+MappedDataControlConsumer.prototype.getValue = function() {
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'key', 'type': types_.STRING},
@@ -606,8 +521,9 @@ MappedDataControlConsumer.prototype.getValue = function(reqId, key, successCallb
     'reqId': args.reqId,
     'key': args.key
   };
-  try {
-    var syncResult = callNativeWithCallback('MappedDataControlConsumer_getValue', nativeParam, function(result) {
+
+  var syncResult =
+    native_.call('MappedDataControlConsumer_getValue', nativeParam, function(result) {
       if (result.status == 'success') {
         args.successCallback(result['result'], result['requestId']);
       }
@@ -619,14 +535,14 @@ MappedDataControlConsumer.prototype.getValue = function(reqId, key, successCallb
         }
       }
     });
-  } catch (e) {
-    throw e;
+
+  if (native_.isFailure(syncResult)) {
+    throw native_.getErrorObject(syncResult);
   }
 
 };
 
-MappedDataControlConsumer.prototype.updateValue = function(
-        reqId, key, oldValue, newValue, successCallback) {
+MappedDataControlConsumer.prototype.updateValue = function() {
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'key', 'type': types_.STRING},
@@ -644,9 +560,9 @@ MappedDataControlConsumer.prototype.updateValue = function(
     'oldValue': args.oldValue,
     'newValue': args.newValue
   };
-  try {
-    var syncResult =
-        callNativeWithCallback('MappedDataControlConsumer_updateValue', nativeParam, function(result) {
+
+  var syncResult =
+    native_.call('MappedDataControlConsumer_updateValue', nativeParam, function(result) {
       if (result.status == 'success') {
         args.successCallback(result['requestId']);
       }
@@ -658,13 +574,12 @@ MappedDataControlConsumer.prototype.updateValue = function(
         }
       }
     });
-  } catch (e) {
-    throw e;
+
+  if (native_.isFailure(syncResult)) {
+    throw native_.getErrorObject(syncResult);
   }
 
 };
 
-
-
 exports = new DataControlManager();