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,