Author: lryan
Date: Mon Jun 1 05:19:13 2009
New Revision: 780563
URL: http://svn.apache.org/viewvc?rev=780563&view=rev
Log:
More thorough query param mapping for JS API. Contributed by Pan Jie.
Modified:
incubator/shindig/trunk/features/src/main/javascript/features/opensocial-base/fieldtranslations.js
incubator/shindig/trunk/features/src/main/javascript/features/opensocial-jsonrpc/jsonrpccontainer.js
Modified:
incubator/shindig/trunk/features/src/main/javascript/features/opensocial-base/fieldtranslations.js
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/features/src/main/javascript/features/opensocial-base/fieldtranslations.js?rev=780563&r1=780562&r2=780563&view=diff
==============================================================================
---
incubator/shindig/trunk/features/src/main/javascript/features/opensocial-base/fieldtranslations.js
(original)
+++
incubator/shindig/trunk/features/src/main/javascript/features/opensocial-base/fieldtranslations.js
Mon Jun 1 05:19:13 2009
@@ -88,7 +88,7 @@
if (serverJson.name) {
serverJson.name.unstructured = serverJson.name.formatted;
}
-
+
if (serverJson.appData) {
serverJson.appData = opensocial.Container.escape(
serverJson.appData, opt_params, true);
@@ -152,7 +152,7 @@
time = (Number(date) + (offset * 60 * 1000));
return new Date(Number(time));
-}
+};
/**
* AppData is provided by the REST and JSON-RPC protocols using
@@ -168,7 +168,7 @@
if (typeof appDataKeys === 'string') {
appDataKeys = [appDataKeys];
}
-
+
var profileDetail = opt_params['profileDetail'] || [];
for (var i = 0; i < appDataKeys.length; i++) {
if (appDataKeys[i] === '*') {
@@ -177,8 +177,44 @@
profileDetail.push('appData.' + appDataKeys[i]);
}
}
-
+
opt_params['appData'] = appDataKeys;
}
- }
-}
\ No newline at end of file
+ }
+};
+
+/**
+ * Translate standard Javascript arguments to JSON-RPC protocol format.
+ */
+FieldTranslations.translateStandardArguments = function(opt_params,
rpc_params) {
+ 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 (opt_params['filterOp']) {
+ rpc_params.filterOp = opt_params['filterOp'];
+ }
+ if (opt_params['filterValue']) {
+ rpc_params.filterValue = opt_params['filterValue'];
+ }
+ if (opt_params['fields']) {
+ rpc_params.fields = opt_params['fields'];
+ }
+};
+
+/**
+ * Translate network distance from id spec to JSON-RPC parameters.
+ */
+FieldTranslations.translateNetworkDistance = function(idSpec, rpc_params) {
+ if (idSpec.getField('networkDistance')) {
+ rpc_params.networkDistance = idSpec.getField('networkDistance');
+ }
+};
Modified:
incubator/shindig/trunk/features/src/main/javascript/features/opensocial-jsonrpc/jsonrpccontainer.js
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/features/src/main/javascript/features/opensocial-jsonrpc/jsonrpccontainer.js?rev=780563&r1=780562&r2=780563&view=diff
==============================================================================
---
incubator/shindig/trunk/features/src/main/javascript/features/opensocial-jsonrpc/jsonrpccontainer.js
(original)
+++
incubator/shindig/trunk/features/src/main/javascript/features/opensocial-jsonrpc/jsonrpccontainer.js
Mon Jun 1 05:19:13 2009
@@ -300,27 +300,13 @@
rpc.params = this.translateIdSpec(idSpec);
FieldTranslations.addAppDataAsProfileFields(opt_params);
+ FieldTranslations.translateStandardArguments(opt_params, rpc.params);
+ FieldTranslations.translateNetworkDistance(idSpec, rpc.params);
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 me = this;
return new JsonRpcRequestItem(rpc,
function(rawJson) {
@@ -372,9 +358,7 @@
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');
- }
+ FieldTranslations.translateNetworkDistance(idSpec, rpc.params);
return new JsonRpcRequestItem(rpc,
function (appData) {
@@ -407,9 +391,8 @@
var rpc = { method : "activities.get" };
rpc.params = this.translateIdSpec(idSpec);
rpc.params.appId = "@app";
- if (idSpec.getField('networkDistance')) {
- rpc.params.networkDistance = idSpec.getField('networkDistance');
- }
+ FieldTranslations.translateStandardArguments(opt_params, rpc.params);
+ FieldTranslations.translateNetworkDistance(idSpec, rpc.params);
return new JsonRpcRequestItem(rpc,
function(rawJson) {
@@ -438,9 +421,7 @@
var rpc = { method : "activities.create" };
rpc.params = this.translateIdSpec(idSpec);
rpc.params.appId = "@app";
- if (idSpec.getField('networkDistance')) {
- rpc.params.networkDistance = idSpec.getField('networkDistance');
- }
+ FieldTranslations.translateNetworkDistance(idSpec, rpc.params);
rpc.params.activity = activity.toJsonObject();
return new JsonRpcRequestItem(rpc);