From: Pawel Kaczmarek
Date: Mon, 23 Mar 2015 13:50:27 +0000 (+0100)
Subject: [NFC] HCE fix arguments type and exeptions
X-Git-Tag: submit/tizen_tv/20150603.064601~1^2~244
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6d05e41d43ba34036aea84fb0abe0b71aca9c10e;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git
[NFC] HCE fix arguments type and exeptions
[Verification]
Compliant with widl doc
Change-Id: I6664f29c273e5585b2d5c2ccd8ad6a4a6d6455e4
Signed-off-by: Pawel Kaczmarek
---
diff --git a/src/nfc/nfc_api.js b/src/nfc/nfc_api.js
index 59673dc9..f1db9f0f 100644
--- a/src/nfc/nfc_api.js
+++ b/src/nfc/nfc_api.js
@@ -578,14 +578,17 @@ NFCAdapter.prototype.setExclusiveModeForTransaction = function() {
NFCAdapter.prototype.addHCEEventListener = function(eventCallback) {
var args = validator_.validateArgs(arguments, [
- {name: 'eventCallback', type: types_.LISTENER, values: ['onchanged']}
+ {name: 'eventCallback', type: types_.FUNCTION}
]);
+ if (!arguments.length || !type_.isFunction(arguments[0])) {
+ throw new WebAPIException(WebAPIException.TYPE_MISMATCH_ERR);
+ }
+
if (type_.isEmptyObject(HCEEventListener.listeners)) {
var result = native_.callSync('NFCAdapter_addHCEEventListener');
if (native_.isFailure(result)) {
- throw new WebAPIException(0, result.error.message,
- result.error.name);
+ throw new WebAPIException(0, result.error.message, result.error.name);
}
}
@@ -597,27 +600,39 @@ NFCAdapter.prototype.removeHCEEventListener = function(watchId) {
{name: 'watchId', type: types_.LONG}
]);
+ if (!arguments.length || !type_.isNumber(arguments[0])) {
+ throw new WebAPIException(WebAPIException.TYPE_MISMATCH_ERR);
+ }
+
HCEEventListener.removeListener(args.watchId);
if (type_.isEmptyObject(HCEEventListener.listeners)) {
- native_.callSync('NFCAdapter_removeHCEEventListener');
+ var result = native_.callSync('NFCAdapter_removeHCEEventListener');
+ if (native_.isFailure(result)) {
+ throw new WebAPIException(0, result.error.message, result.error.name);
+ }
}
};
NFCAdapter.prototype.sendHostAPDUResponse = function(apdu, successCallback, errorCallback) {
var args = validator_.validateArgs(arguments, [
- {name: 'apdu', type: types_.BYTE},
+ {name: 'apdu', type: types_.ARRAY, values: types_.BYTE},
{name: 'successCallback', type: types_.FUNCTION, optional: true, nullable: true},
{name: 'errorCallback', type: types_.FUNCTION, optional: true, nullable: true}
]);
+ if (!arguments.length || !type_.isArray(arguments[0])) {
+ throw new WebAPIException(WebAPIException.TYPE_MISMATCH_ERR);
+ }
+
var data = {
apdu: args.apdu
};
var callback = function(result) {
if (native_.isFailure(result)) {
- native_.callIfPossible(args.errorCallback, native_.getErrorObject(result));
+ native_.callIfPossible(args.errorCallback, new WebAPIException(0, result.error.message,
+ result.error.name));
return;
}
native_.callIfPossible(args.successCallback);
@@ -628,9 +643,13 @@ NFCAdapter.prototype.sendHostAPDUResponse = function(apdu, successCallback, erro
NFCAdapter.prototype.isActivatedHandlerForAID = function(aid) {
var args = validator_.validateArgs(arguments, [
- {name: 'aid', type: types_.BYTE}
+ {name: 'aid', type: types_.STRING}
]);
+ if (!arguments.length) {
+ throw new WebAPIException(WebAPIException.TYPE_MISMATCH_ERR);
+ }
+
var data = {
aid: args.aid
};
@@ -638,7 +657,7 @@ NFCAdapter.prototype.isActivatedHandlerForAID = function(aid) {
var result = native_.callSync('NFCAdapter_isActivatedHandlerForAID', data);
if (native_.isFailure(result)) {
- throw native_.getErrorObject(result);
+ throw new WebAPIException(0, result.error.message, result.error.name);
}
return native_.getResultObject(result);
};
@@ -648,6 +667,10 @@ NFCAdapter.prototype.isActivatedHandlerForCategory = function(category) {
{name: 'category', type: types_.ENUM, values: Object.keys(CardEmulationCategoryType)}
]);
+ if (!arguments.length) {
+ throw new WebAPIException(WebAPIException.TYPE_MISMATCH_ERR);
+ }
+
var data = {
category: args.category
};
@@ -655,17 +678,21 @@ NFCAdapter.prototype.isActivatedHandlerForCategory = function(category) {
var result = native_.callSync('NFCAdapter_isActivatedHandlerForCategory', data);
if (native_.isFailure(result)) {
- throw native_.getErrorObject(result);
+ throw new WebAPIException(0, result.error.message, result.error.name);
}
return native_.getResultObject(result);
};
NFCAdapter.prototype.registerAID = function(aid, category) {
var args = validator_.validateArgs(arguments, [
- {name: 'aid', type: types_.BYTE},
+ {name: 'aid', type: types_.STRING},
{name: 'category', type: types_.ENUM, values: Object.keys(CardEmulationCategoryType)}
]);
+ if (arguments.length < 2 || !type_.isString(arguments[0])) {
+ throw new WebAPIException(WebAPIException.TYPE_MISMATCH_ERR);
+ }
+
var data = {
aid: args.aid,
category: args.category
@@ -674,16 +701,20 @@ NFCAdapter.prototype.registerAID = function(aid, category) {
var result = native_.callSync('NFCAdapter_registerAID', data);
if (native_.isFailure(result)) {
- throw native_.getErrorObject(result);
+ throw new WebAPIException(0, result.error.message, result.error.name);
}
};
NFCAdapter.prototype.unregisterAID = function(aid, category) {
var args = validator_.validateArgs(arguments, [
- {name: 'aid', type: types_.BYTE},
+ {name: 'aid', type: types_.STRING},
{name: 'category', type: types_.ENUM, values: Object.keys(CardEmulationCategoryType)}
]);
+ if (arguments.length < 2 || !type_.isString(arguments[0])) {
+ throw new WebAPIException(WebAPIException.TYPE_MISMATCH_ERR);
+ }
+
var data = {
aid: args.aid,
category: args.category
@@ -692,7 +723,7 @@ NFCAdapter.prototype.unregisterAID = function(aid, category) {
var result = native_.callSync('NFCAdapter_unregisterAID', data);
if (native_.isFailure(result)) {
- throw native_.getErrorObject(result);
+ throw new WebAPIException(0, result.error.message, result.error.name);
}
};
@@ -723,16 +754,26 @@ NFCAdapter.prototype.getAIDsForCategory = function(category, successCallback, er
{name: 'errorCallback', type: types_.FUNCTION, optional: true, nullable: true}
]);
+ if (arguments.length < 2) {
+ throw new WebAPIException(WebAPIException.TYPE_MISMATCH_ERR);
+ }
+
var data = {
category: args.category
};
var callback = function(result) {
if (native_.isFailure(result)) {
- native_.callIfPossible(args.errorCallback, native_.getErrorObject(result));
+ native_.callIfPossible(args.errorCallback, new WebAPIException(0, result.error.message,
+ result.error.name));
return;
}
- native_.callIfPossible(args.successCallback, new AIDData(native_.getResultObject(result)));
+ var aids = [];
+ var r = native_.getResultObject(result);
+ for (var i = 0; i < r.length; i++) {
+ aids.push(new AIDData(r[i]));
+ }
+ native_.callIfPossible(args.successCallback, aids);
};
native_.call('NFCAdapter_getAIDsForCategory', data, callback);