Author: etnu
Date: Mon Jan 5 16:13:06 2009
New Revision: 731780
URL: http://svn.apache.org/viewvc?rev=731780&view=rev
Log:
Applied patch for SHINDIG-780, from Bob Evans. This patch implements
requestShareApp by delegating to gadgets.rpc.
Modified:
incubator/shindig/trunk/features/opensocial-jsonrpc/feature.xml
incubator/shindig/trunk/features/opensocial-jsonrpc/jsonrpccontainer.js
Modified: incubator/shindig/trunk/features/opensocial-jsonrpc/feature.xml
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/features/opensocial-jsonrpc/feature.xml?rev=731780&r1=731779&r2=731780&view=diff
==============================================================================
--- incubator/shindig/trunk/features/opensocial-jsonrpc/feature.xml (original)
+++ incubator/shindig/trunk/features/opensocial-jsonrpc/feature.xml Mon Jan 5
16:13:06 2009
@@ -20,6 +20,7 @@
<feature>
<name>opensocial-jsonrpc</name>
<dependency>opensocial-base</dependency>
+ <dependency>rpc</dependency>
<gadget>
<script src="jsonrpccontainer.js"></script>
</gadget>
Modified:
incubator/shindig/trunk/features/opensocial-jsonrpc/jsonrpccontainer.js
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/features/opensocial-jsonrpc/jsonrpccontainer.js?rev=731780&r1=731779&r2=731780&view=diff
==============================================================================
--- incubator/shindig/trunk/features/opensocial-jsonrpc/jsonrpccontainer.js
(original)
+++ incubator/shindig/trunk/features/opensocial-jsonrpc/jsonrpccontainer.js Mon
Jan 5 16:13:06 2009
@@ -38,338 +38,394 @@
this.baseUrl_ = baseUrl;
this.securityToken_ = shindig.auth.getSecurityToken();
-};
-JsonRpcContainer.inherits(opensocial.Container);
-JsonRpcContainer.prototype.getEnvironment = function() {
- return this.environment_;
+ gadgets.rpc.register('shindig.requestShareApp_callback',
+ JsonRpcContainer.requestShareAppCallback_);
};
-JsonRpcContainer.prototype.requestCreateActivity = function(activity, priority,
- opt_callback) {
- opt_callback = opt_callback || function(){};
-
- var req = opensocial.newDataRequest();
- var viewer = new opensocial.IdSpec({'userId' : 'VIEWER'});
- req.add(this.newCreateActivityRequest(viewer, activity), 'key');
- req.send(function(response) {
- opt_callback(response.get('key'));
- });
-};
+(function() {
+ var callbackIdStore = {};
-JsonRpcContainer.prototype.requestData = function(dataRequest, callback) {
- callback = callback || function(){};
+ JsonRpcContainer.inherits(opensocial.Container);
- var requestObjects = dataRequest.getRequestObjects();
- var totalRequests = requestObjects.length;
+ JsonRpcContainer.prototype.getEnvironment = function() {
+ return this.environment_;
+ };
- if (totalRequests == 0) {
- window.setTimeout(function() {
- callback(new opensocial.DataResponse({}, true));
- }, 0);
- return;
- }
+ JsonRpcContainer.prototype.requestShareApp = function(recipientIds, reason,
+ opt_callback, opt_params) {
+ var callbackId = "cId_" + Math.random();
+ callbackIdStore[callbackId] = opt_callback;
+
+ var body = gadgets.util.unescapeString(reason.getField(
+ opensocial.Message.Field.BODY));
+
+ if (!body || body.length == 0) {
+ var bodyMsgKey = gadgets.util.unescapeString(reason.getField(
+ opensocial.Message.Field.BODY_ID));
+ body = gadgets.Prefs.getMsg(bodyMsgKey);
+ }
- var jsonBatchData = new Array(totalRequests);
+ gadgets.rpc.call('..', 'shindig.requestShareApp',
+ null,
+ callbackId,
+ recipientIds,
+ body);
+ };
+
- for (var j = 0; j < totalRequests; j++) {
- var requestObject = requestObjects[j];
+ /**
+ * Receives the returned results from the parent container.
+ *
+ * @param {boolean} success if false, the message will not be sent
+ * @param {string} opt_errorCode an error code if success is false
+ * @param {Array.<string>?} recipientIds an array of recipient IDs,
+ * if success is true
+ * @private
+ */
+ JsonRpcContainer.requestShareAppCallback_ = function(callbackId,
+ success, opt_errorCode, recipientIds) {
+ callback = callbackIdStore[callbackId]
+ if (callback) {
+ callbackIdStore[callbackId] = null;
+
+ var data = null;
+ if (recipientIds) {
+ data = {'recipientIds': recipientIds};
+ }
- jsonBatchData[j] = requestObject.request.rpc;
- if (requestObject.key) {
- jsonBatchData[j].id = requestObject.key;
+ var responseItem = new opensocial.ResponseItem(null, data,
opt_errorCode);
+ callback(responseItem);
}
- }
+ };
+
+
+ JsonRpcContainer.prototype.requestCreateActivity = function(activity,
priority,
+ opt_callback) {
+ opt_callback = opt_callback || function(){};
+
+ var req = opensocial.newDataRequest();
+ var viewer = new opensocial.IdSpec({'userId' : 'VIEWER'});
+ req.add(this.newCreateActivityRequest(viewer, activity), 'key');
+ req.send(function(response) {
+ opt_callback(response.get('key'));
+ });
+ };
- var sendResponse = function(result) {
- if (result.errors[0]) {
- JsonRpcContainer.generateErrorResponse(result, requestObjects, callback);
+ JsonRpcContainer.prototype.requestData = function(dataRequest, callback) {
+ callback = callback || function(){};
+
+ var requestObjects = dataRequest.getRequestObjects();
+ var totalRequests = requestObjects.length;
+
+ if (totalRequests == 0) {
+ window.setTimeout(function() {
+ callback(new opensocial.DataResponse({}, true));
+ }, 0);
return;
}
- result = result.data;
+ var jsonBatchData = new Array(totalRequests);
- var globalError = false;
- var responseMap = {};
+ for (var j = 0; j < totalRequests; j++) {
+ var requestObject = requestObjects[j];
- // Map from indices to ids.
- for (var i = 0; i < result.length; i++) {
- result[result[i].id] = result[i];
+ jsonBatchData[j] = requestObject.request.rpc;
+ if (requestObject.key) {
+ jsonBatchData[j].id = requestObject.key;
+ }
}
- for (var k = 0; k < requestObjects.length; k++) {
- var request = requestObjects[k];
- var response = result[k];
-
- if (request.key && response.id != request.key) {
- throw "Request key(" + request.key +
- ") and response id(" + response.id + ") do not match";
+ var sendResponse = function(result) {
+ if (result.errors[0]) {
+ JsonRpcContainer.generateErrorResponse(result, requestObjects,
callback);
+ return;
}
- var rawData = response.data;
- var error = response.error;
- var errorMessage = "";
+ result = result.data;
+
+ var globalError = false;
+ var responseMap = {};
- if (error) {
- errorMessage = error.message;
+ // Map from indices to ids.
+ for (var i = 0; i < result.length; i++) {
+ result[result[i].id] = result[i];
}
- var processedData = request.request.processResponse(
- request.request, rawData, error, errorMessage);
- globalError = globalError || processedData.hadError();
- if (request.key) {
- responseMap[request.key] = processedData;
+ for (var k = 0; k < requestObjects.length; k++) {
+ var request = requestObjects[k];
+ var response = result[k];
+
+ if (request.key && response.id != request.key) {
+ throw "Request key(" + request.key +
+ ") and response id(" + response.id + ") do not match";
+ }
+
+ var rawData = response.data;
+ var error = response.error;
+ var errorMessage = "";
+
+ if (error) {
+ errorMessage = error.message;
+ }
+
+ var processedData = request.request.processResponse(
+ request.request, rawData, error, errorMessage);
+ globalError = globalError || processedData.hadError();
+ if (request.key) {
+ responseMap[request.key] = processedData;
+ }
}
+
+ var dataResponse = new opensocial.DataResponse(responseMap, globalError);
+ callback(dataResponse);
+ };
+
+ // TODO: get the jsonbatch url from the container config
+ var makeRequestParams = {
+ "CONTENT_TYPE" : "JSON",
+ "METHOD" : "POST",
+ "AUTHORIZATION" : "SIGNED",
+ "POST_DATA" : gadgets.json.stringify(jsonBatchData)
+ };
+
+ var url = [this.baseUrl_, "/rpc"];
+ var token = shindig.auth.getSecurityToken();
+ if (token) {
+ url.push("?st=", encodeURIComponent(token));
}
- var dataResponse = new opensocial.DataResponse(responseMap, globalError);
- callback(dataResponse);
+ this.sendRequest(url.join(''), sendResponse, makeRequestParams,
+ "application/json");
};
- // TODO: get the jsonbatch url from the container config
- var makeRequestParams = {
- "CONTENT_TYPE" : "JSON",
- "METHOD" : "POST",
- "AUTHORIZATION" : "SIGNED",
- "POST_DATA" : gadgets.json.stringify(jsonBatchData)
- };
-
- var url = [this.baseUrl_, "/rpc"];
- var token = shindig.auth.getSecurityToken();
- if (token) {
- url.push("?st=", encodeURIComponent(token));
+ JsonRpcContainer.prototype.sendRequest = function(relativeUrl, callback,
params, contentType) {
+ gadgets.io.makeNonProxiedRequest(relativeUrl, callback, params,
contentType);
}
- this.sendRequest(url.join(''), sendResponse, makeRequestParams,
- "application/json");
-};
-
-JsonRpcContainer.prototype.sendRequest = function(relativeUrl, callback,
params, contentType) {
- gadgets.io.makeNonProxiedRequest(relativeUrl, callback, params, contentType);
-}
-
-JsonRpcContainer.generateErrorResponse = function(result, requestObjects,
- callback) {
- var globalErrorCode =
- JsonRpcContainer.translateHttpError(result.errors[0]
- || result.data.error)
- || opensocial.ResponseItem.Error.INTERNAL_ERROR;
-
- var errorResponseMap = {};
- for (var i = 0; i < requestObjects.length; i++) {
- errorResponseMap[requestObjects[i].key] = new opensocial.ResponseItem(
- requestObjects[i].request, null, globalErrorCode);
- }
- callback(new opensocial.DataResponse(errorResponseMap, true));
-};
-
-JsonRpcContainer.translateHttpError = function(httpError) {
- if (httpError == "Error 501") {
- return opensocial.ResponseItem.Error.NOT_IMPLEMENTED;
- } else if (httpError == "Error 401") {
- return opensocial.ResponseItem.Error.UNAUTHORIZED;
- } else if (httpError == "Error 403") {
- return opensocial.ResponseItem.Error.FORBIDDEN;
- } else if (httpError == "Error 400") {
- return opensocial.ResponseItem.Error.BAD_REQUEST;
- } else if (httpError == "Error 500") {
- return opensocial.ResponseItem.Error.INTERNAL_ERROR;
- } else if (httpError == "Error 404") {
- return opensocial.ResponseItem.Error.BAD_REQUEST;
- } else if (httpError == "Error 417") {
- return opensocial.ResponseItem.Error.LIMIT_EXCEEDED;
- }
-};
+ JsonRpcContainer.generateErrorResponse = function(result, requestObjects,
+ callback) {
+ var globalErrorCode =
+ JsonRpcContainer.translateHttpError(result.errors[0]
+ || result.data.error)
+ || opensocial.ResponseItem.Error.INTERNAL_ERROR;
+
+ var errorResponseMap = {};
+ for (var i = 0; i < requestObjects.length; i++) {
+ errorResponseMap[requestObjects[i].key] = new opensocial.ResponseItem(
+ requestObjects[i].request, null, globalErrorCode);
+ }
+ callback(new opensocial.DataResponse(errorResponseMap, true));
+ };
-JsonRpcContainer.prototype.makeIdSpec = function(id) {
- return new opensocial.IdSpec({'userId' : id});
-};
+ JsonRpcContainer.translateHttpError = function(httpError) {
+ if (httpError == "Error 501") {
+ return opensocial.ResponseItem.Error.NOT_IMPLEMENTED;
+ } else if (httpError == "Error 401") {
+ return opensocial.ResponseItem.Error.UNAUTHORIZED;
+ } else if (httpError == "Error 403") {
+ return opensocial.ResponseItem.Error.FORBIDDEN;
+ } else if (httpError == "Error 400") {
+ return opensocial.ResponseItem.Error.BAD_REQUEST;
+ } else if (httpError == "Error 500") {
+ return opensocial.ResponseItem.Error.INTERNAL_ERROR;
+ } else if (httpError == "Error 404") {
+ return opensocial.ResponseItem.Error.BAD_REQUEST;
+ } else if (httpError == "Error 417") {
+ return opensocial.ResponseItem.Error.LIMIT_EXCEEDED;
+ }
+ };
-JsonRpcContainer.prototype.translateIdSpec = function(newIdSpec) {
- var userIds = newIdSpec.getField('userId');
- var groupId = newIdSpec.getField('groupId');
-
- // Upconvert to array for convenience
- if (!opensocial.Container.isArray(userIds)) {
- userIds = [userIds];
- }
+ JsonRpcContainer.prototype.makeIdSpec = function(id) {
+ return new opensocial.IdSpec({'userId' : id});
+ };
- for (var i = 0; i < userIds.length; i++) {
- if (userIds[i] == 'OWNER') {
- userIds[i] = '@owner';
- } else if (userIds[i] == 'VIEWER') {
- userIds[i] = '@viewer';
+ JsonRpcContainer.prototype.translateIdSpec = function(newIdSpec) {
+ var userIds = newIdSpec.getField('userId');
+ var groupId = newIdSpec.getField('groupId');
+
+ // Upconvert to array for convenience
+ if (!opensocial.Container.isArray(userIds)) {
+ userIds = [userIds];
}
- }
- if (groupId == 'FRIENDS') {
- groupId = "@friends";
- } else if (groupId == 'SELF' || !groupId) {
- groupId = "@self";
- }
+ for (var i = 0; i < userIds.length; i++) {
+ if (userIds[i] == 'OWNER') {
+ userIds[i] = '@owner';
+ } else if (userIds[i] == 'VIEWER') {
+ userIds[i] = '@viewer';
+ }
+ }
- return { userId : userIds, groupId : groupId};
-};
+ if (groupId == 'FRIENDS') {
+ groupId = "@friends";
+ } else if (groupId == 'SELF' || !groupId) {
+ groupId = "@self";
+ }
-JsonRpcContainer.prototype.newFetchPersonRequest = function(id, opt_params) {
- var peopleRequest = this.newFetchPeopleRequest(
- this.makeIdSpec(id), opt_params);
-
- var me = this;
- return new JsonRpcRequestItem(peopleRequest.rpc,
- function(rawJson) {
- return me.createPersonFromJson(rawJson);
- });
-};
+ return { userId : userIds, groupId : groupId};
+ };
-JsonRpcContainer.prototype.newFetchPeopleRequest = function(idSpec,
- opt_params) {
- var rpc = { method : "people.get" };
- rpc.params = this.translateIdSpec(idSpec);
- if (opt_params['profileDetail']) {
-
FieldTranslations.translateJsPersonFieldsToServerFields(opt_params['profileDetail']);
- rpc.params.fields = opt_params['profileDetail'];
- }
- if (opt_params['first']) {
- rpc.params.startIndex = opt_params['first'];
- }
- if (opt_params['max']) {
- rpc.params.count = opt_params['max'];
- }
- if (opt_params['sortOrder']) {
- rpc.params.sortBy = opt_params['sortOrder'];
- }
- if (opt_params['filter']) {
- rpc.params.filterBy = opt_params['filter'];
- }
- if (idSpec.getField('networkDistance')) {
- rpc.params.networkDistance = idSpec.getField('networkDistance');
- }
+ JsonRpcContainer.prototype.newFetchPersonRequest = function(id, opt_params) {
+ var peopleRequest = this.newFetchPeopleRequest(
+ this.makeIdSpec(id), opt_params);
+
+ var me = this;
+ return new JsonRpcRequestItem(peopleRequest.rpc,
+ function(rawJson) {
+ return me.createPersonFromJson(rawJson);
+ });
+ };
- var me = this;
- return new JsonRpcRequestItem(rpc,
- function(rawJson) {
- var jsonPeople;
- if (rawJson['list']) {
- // For the array of people response
- jsonPeople = rawJson['list'];
- } else {
- // For the single person response
- jsonPeople = [rawJson];
- }
+ JsonRpcContainer.prototype.newFetchPeopleRequest = function(idSpec,
+ opt_params) {
+ var rpc = { method : "people.get" };
+ rpc.params = this.translateIdSpec(idSpec);
+ if (opt_params['profileDetail']) {
+
FieldTranslations.translateJsPersonFieldsToServerFields(opt_params['profileDetail']);
+ rpc.params.fields = opt_params['profileDetail'];
+ }
+ if (opt_params['first']) {
+ rpc.params.startIndex = opt_params['first'];
+ }
+ if (opt_params['max']) {
+ rpc.params.count = opt_params['max'];
+ }
+ if (opt_params['sortOrder']) {
+ rpc.params.sortBy = opt_params['sortOrder'];
+ }
+ if (opt_params['filter']) {
+ rpc.params.filterBy = opt_params['filter'];
+ }
+ if (idSpec.getField('networkDistance')) {
+ rpc.params.networkDistance = idSpec.getField('networkDistance');
+ }
- var people = [];
- for (var i = 0; i < jsonPeople.length; i++) {
- people.push(me.createPersonFromJson(jsonPeople[i]));
- }
- return new opensocial.Collection(people,
- rawJson['startIndex'], rawJson['totalResults']);
- });
-};
+ var me = this;
+ return new JsonRpcRequestItem(rpc,
+ function(rawJson) {
+ var jsonPeople;
+ if (rawJson['list']) {
+ // For the array of people response
+ jsonPeople = rawJson['list'];
+ } else {
+ // For the single person response
+ jsonPeople = [rawJson];
+ }
+
+ var people = [];
+ for (var i = 0; i < jsonPeople.length; i++) {
+ people.push(me.createPersonFromJson(jsonPeople[i]));
+ }
+ return new opensocial.Collection(people,
+ rawJson['startIndex'], rawJson['totalResults']);
+ });
+ };
-JsonRpcContainer.prototype.createPersonFromJson = function(serverJson) {
- FieldTranslations.translateServerPersonToJsPerson(serverJson);
- return new JsonPerson(serverJson);
-};
+ JsonRpcContainer.prototype.createPersonFromJson = function(serverJson) {
+ FieldTranslations.translateServerPersonToJsPerson(serverJson);
+ return new JsonPerson(serverJson);
+ };
-JsonRpcContainer.prototype.getFieldsList = function(keys) {
- // datarequest.js guarantees that keys is an array
- if (this.hasNoKeys(keys) || this.isWildcardKey(keys[0])) {
- return [];
- } else {
- return keys;
- }
-};
+ JsonRpcContainer.prototype.getFieldsList = function(keys) {
+ // datarequest.js guarantees that keys is an array
+ if (this.hasNoKeys(keys) || this.isWildcardKey(keys[0])) {
+ return [];
+ } else {
+ return keys;
+ }
+ };
-JsonRpcContainer.prototype.hasNoKeys = function(keys) {
- return !keys || keys.length == 0;
-};
+ JsonRpcContainer.prototype.hasNoKeys = function(keys) {
+ return !keys || keys.length == 0;
+ };
-JsonRpcContainer.prototype.isWildcardKey = function(key) {
- // Some containers support * to mean all keys in the js apis.
- // This allows the RESTful apis to be compatible with them.
- return key == "*";
-};
+ JsonRpcContainer.prototype.isWildcardKey = function(key) {
+ // Some containers support * to mean all keys in the js apis.
+ // This allows the RESTful apis to be compatible with them.
+ return key == "*";
+ };
-JsonRpcContainer.prototype.newFetchPersonAppDataRequest = function(idSpec,
keys,
- opt_params) {
- var rpc = { method : "appdata.get" };
- rpc.params = this.translateIdSpec(idSpec);
- rpc.params.appId = "@app";
- rpc.params.fields = this.getFieldsList(keys);
- if (idSpec.getField('networkDistance')) {
- rpc.params.networkDistance = idSpec.getField('networkDistance');
- }
+ JsonRpcContainer.prototype.newFetchPersonAppDataRequest = function(idSpec,
keys,
+ opt_params) {
+ var rpc = { method : "appdata.get" };
+ rpc.params = this.translateIdSpec(idSpec);
+ rpc.params.appId = "@app";
+ rpc.params.fields = this.getFieldsList(keys);
+ if (idSpec.getField('networkDistance')) {
+ rpc.params.networkDistance = idSpec.getField('networkDistance');
+ }
- return new JsonRpcRequestItem(rpc,
- function (appData) {
- return opensocial.Container.escape(appData, opt_params, true);
- });
-};
+ return new JsonRpcRequestItem(rpc,
+ function (appData) {
+ return opensocial.Container.escape(appData, opt_params, true);
+ });
+ };
-JsonRpcContainer.prototype.newUpdatePersonAppDataRequest = function(id, key,
- value) {
- var rpc = { method : "appdata.update" };
- rpc.params = this.translateIdSpec(this.makeIdSpec(id));
- rpc.params.appId = "@app";
- rpc.params.data = {};
- rpc.params.data[key] = value;
- rpc.params.fields = key;
- return new JsonRpcRequestItem(rpc);
-};
+ JsonRpcContainer.prototype.newUpdatePersonAppDataRequest = function(id, key,
+ value) {
+ var rpc = { method : "appdata.update" };
+ rpc.params = this.translateIdSpec(this.makeIdSpec(id));
+ rpc.params.appId = "@app";
+ rpc.params.data = {};
+ rpc.params.data[key] = value;
+ rpc.params.fields = key;
+ return new JsonRpcRequestItem(rpc);
+ };
-JsonRpcContainer.prototype.newRemovePersonAppDataRequest = function(id, keys) {
- var rpc = { method : "appdata.delete" };
- rpc.params = this.translateIdSpec(this.makeIdSpec(id));
- rpc.params.appId = "@app";
- rpc.params.fields = this.getFieldsList(keys);
+ JsonRpcContainer.prototype.newRemovePersonAppDataRequest = function(id,
keys) {
+ var rpc = { method : "appdata.delete" };
+ rpc.params = this.translateIdSpec(this.makeIdSpec(id));
+ rpc.params.appId = "@app";
+ rpc.params.fields = this.getFieldsList(keys);
- return new JsonRpcRequestItem(rpc);
-};
+ return new JsonRpcRequestItem(rpc);
+ };
-JsonRpcContainer.prototype.newFetchActivitiesRequest = function(idSpec,
- opt_params) {
- var rpc = { method : "activities.get" };
- rpc.params = this.translateIdSpec(idSpec);
- rpc.params.appId = "@app";
- if (idSpec.getField('networkDistance')) {
- rpc.params.networkDistance = idSpec.getField('networkDistance');
- }
+ JsonRpcContainer.prototype.newFetchActivitiesRequest = function(idSpec,
+ opt_params) {
+ var rpc = { method : "activities.get" };
+ rpc.params = this.translateIdSpec(idSpec);
+ rpc.params.appId = "@app";
+ if (idSpec.getField('networkDistance')) {
+ rpc.params.networkDistance = idSpec.getField('networkDistance');
+ }
- return new JsonRpcRequestItem(rpc,
- function(rawJson) {
- rawJson = rawJson['list'];
- var activities = [];
- for (var i = 0; i < rawJson.length; i++) {
- activities.push(new JsonActivity(rawJson[i]));
- }
- return new opensocial.Collection(activities);
- });
-};
+ return new JsonRpcRequestItem(rpc,
+ function(rawJson) {
+ rawJson = rawJson['list'];
+ var activities = [];
+ for (var i = 0; i < rawJson.length; i++) {
+ activities.push(new JsonActivity(rawJson[i]));
+ }
+ return new opensocial.Collection(activities);
+ });
+ };
-JsonRpcContainer.prototype.newActivity = function(opt_params) {
- return new JsonActivity(opt_params, true);
-};
+ JsonRpcContainer.prototype.newActivity = function(opt_params) {
+ return new JsonActivity(opt_params, true);
+ };
-JsonRpcContainer.prototype.newMediaItem = function(mimeType, url, opt_params) {
- opt_params = opt_params || {};
- opt_params['mimeType'] = mimeType;
- opt_params['url'] = url;
- return new JsonMediaItem(opt_params);
-};
+ JsonRpcContainer.prototype.newMediaItem = function(mimeType, url,
opt_params) {
+ opt_params = opt_params || {};
+ opt_params['mimeType'] = mimeType;
+ opt_params['url'] = url;
+ return new JsonMediaItem(opt_params);
+ };
-JsonRpcContainer.prototype.newCreateActivityRequest = function(idSpec,
- activity) {
- var rpc = { method : "activities.create" };
- rpc.params = this.translateIdSpec(idSpec);
- rpc.params.appId = "@app";
- if (idSpec.getField('networkDistance')) {
- rpc.params.networkDistance = idSpec.getField('networkDistance');
- }
- rpc.params.activity = activity.toJsonObject();
+ JsonRpcContainer.prototype.newCreateActivityRequest = function(idSpec,
+ activity) {
+ var rpc = { method : "activities.create" };
+ rpc.params = this.translateIdSpec(idSpec);
+ rpc.params.appId = "@app";
+ if (idSpec.getField('networkDistance')) {
+ rpc.params.networkDistance = idSpec.getField('networkDistance');
+ }
+ rpc.params.activity = activity.toJsonObject();
- return new JsonRpcRequestItem(rpc);
-};
+ return new JsonRpcRequestItem(rpc);
+ };
+})();
var JsonRpcRequestItem = function(rpc, opt_processData) {
this.rpc = rpc;