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);


Reply via email to