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);