From: Piotr Kosko Date: Thu, 26 Nov 2015 12:14:09 +0000 (+0100) Subject: [Datacontrol] Added missing conversion in insert method X-Git-Tag: submit/tizen/20160418.070226^2~13^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=866db933eec74a03c56d1f4180e54a4039765f79;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Datacontrol] Added missing conversion in insert method [Verification] Code compiles withou errors. TCT passrate is 100%. //Code below works as expected (return errorCallback) //Gets SQL type DataControlConsumerObject globalReqId=0; var globalSQLConsumer = tizen.datacontrol.getDataControlConsumer( "http://tizen.org/datacontrol/provider/DictionaryDataControlProvider", "Dictionary", "SQL"); // insert var rowData = { columns : ["WORD", "WORD_DESC"] , values : [undefined, "'tizen2'"] }; globalReqId++; globalSQLConsumer.insert(globalReqId, rowData, function(id){console.log("ok : reqid " + id);}, function errorcb(id, error){console.log("error id : " + id + ", error msg : " + error.message);}); Change-Id: I85f827d9208fe680cd6c94e7f6c2092f64d5b0e5 Signed-off-by: Piotr Kosko --- diff --git a/src/datacontrol/datacontrol_api.js b/src/datacontrol/datacontrol_api.js index 98b75595..5583184c 100755 --- a/src/datacontrol/datacontrol_api.js +++ b/src/datacontrol/datacontrol_api.js @@ -112,7 +112,6 @@ DataControlManager.prototype.getDataControlConsumer = function(providerId, dataI return getDataControlConsumer.apply(null, arguments); }; - function DataControlConsumerObject() { // constructor of DataControlConsumerObject } @@ -134,11 +133,17 @@ SQLDataControlConsumer.prototype.insert = function(reqId, insertionData) { {'name': 'errorCallback', 'type': types_.FUNCTION, optional: true, nullable: true} ]); + // doing conversion of all elements to string + var ins = validator_.validateArgs([args.insertionData.columns, args.insertionData.values], [ + {name : 'columns', type : types_.ARRAY, values : types_.STRING}, + {name : 'values', type : types_.ARRAY, values : types_.STRING} + ]); + var nativeParam = { 'providerId': this.providerId, 'dataId': this.dataId, 'reqId': args.reqId, - 'insertionData': insertionData + 'insertionData': args.insertionData }; try { var syncResult = diff --git a/src/datacontrol/datacontrol_instance.cc b/src/datacontrol/datacontrol_instance.cc index 8e6c258e..7e71cebd 100755 --- a/src/datacontrol/datacontrol_instance.cc +++ b/src/datacontrol/datacontrol_instance.cc @@ -565,10 +565,13 @@ void DatacontrolInstance::SQLDataControlConsumerInsert( break; } - std::string& columnName = column.get(); - std::string valueString = value.get(); + const std::string& columnName = column.get(); + const std::string& valueString = value.get(); - bundle_add_str(b, columnName.c_str(), valueString.c_str()); + int result = bundle_add_str(b, columnName.c_str(), valueString.c_str()); + if (BUNDLE_ERROR_NONE != result) { + return result; + } } return ::data_control_sql_insert(handle, b, requestId);