From: Pawel Andruszkiewicz
Date: Thu, 18 Feb 2016 10:55:04 +0000 (+0100)
Subject: [iotcon] Implementation of RemoteResource.methodDelete().
X-Git-Tag: submit/tizen/20160222.104327^2~5
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c4d4f324d38dd3515bbca8468cb5acb2313b8373;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git
[iotcon] Implementation of RemoteResource.methodDelete().
Change-Id: Ie26567fd785b7967eec47de503bef5d2a610442c
Signed-off-by: Pawel Andruszkiewicz
---
diff --git a/src/iotcon/iotcon_api.js b/src/iotcon/iotcon_api.js
index 43ed6fbe..7bf89403 100644
--- a/src/iotcon/iotcon_api.js
+++ b/src/iotcon/iotcon_api.js
@@ -747,18 +747,21 @@ RemoteResource.prototype.methodDelete = function() {
var callArgs = prepareResourceInfo(this);
var callback = function(result) {
- if (native.isFailure(result)) {
+ result = native.getResultObject(result);
+ manageId(this, result);
+ if (!result.data) {
native.callIfPossible(args.errorCallback, native.getErrorObject(result));
} else {
- // TODO: implement
- args.responseCallback();
+ args.responseCallback(new RemoteResponse(result.data));
}
- };
+ }.bind(this);
var result = native.call('IotconRemoteResource_methodDelete', callArgs, callback);
if (native.isFailure(result)) {
throw native.getErrorObject(result);
+ } else {
+ manageId(this, native.getResultObject(result));
}
};
diff --git a/src/iotcon/iotcon_instance.cc b/src/iotcon/iotcon_instance.cc
index 4b6b0de6..10250149 100644
--- a/src/iotcon/iotcon_instance.cc
+++ b/src/iotcon/iotcon_instance.cc
@@ -667,7 +667,24 @@ common::TizenResult IotconInstance::RemoteResourceMethodPost(const picojson::obj
common::TizenResult IotconInstance::RemoteResourceMethodDelete(const picojson::object& args,
const common::AsyncToken& token) {
ScopeLogger();
- return common::UnknownError("Not implemented");
+
+ FoundRemoteInfoPtr resource;
+ auto result = IotconUtils::RemoteResourceFromJson(args, &resource);
+ if (!result) {
+ LogAndReturnTizenError(result, ("RemoteResourceFromJson() failed"));
+ }
+
+ std::unique_ptr data{new CallbackData{PostForMethodCall(token, resource)}};
+
+ result = IotconUtils::ConvertIotconError(iotcon_remote_resource_delete(resource->handle, RemoteResourceResponseCallback, data.get()));
+ if (!result) {
+ LogAndReturnTizenError(result, ("iotcon_remote_resource_delete() failed"));
+ }
+
+ // release memory ownership
+ data.release();
+
+ return common::TizenSuccess{IotconClientManager::GetInstance().StoreRemoteResource(resource)};
}
static void ObserveCallback(iotcon_remote_resource_h resource, iotcon_error_e err,