Reviewers: louiscryan,

Description:
jsonrpccontainer was hardcoding /social/rpc and /gadgets/api/rpc paths,
which made it hard to config.  Eliminate that, and pull the paths
entirely from runtime config.

Please review this at http://codereview.appspot.com/96045

Affected files:
  config/container.js
  features/src/main/javascript/features/opensocial-current/feature.xml
features/src/main/javascript/features/opensocial-jsonrpc/jsonrpccontainer.js


Index: features/src/main/javascript/features/opensocial-jsonrpc/jsonrpccontainer.js
===================================================================
--- features/src/main/javascript/features/opensocial-jsonrpc/jsonrpccontainer.js (revision 793628) +++ features/src/main/javascript/features/opensocial-jsonrpc/jsonrpccontainer.js (working copy)
@@ -23,9 +23,19 @@
  * @fileoverview JSON-RPC based opensocial container.
  */

-var JsonRpcContainer = function(baseUrl, domain, supportedFieldsArray) {
+var JsonRpcContainer = function(configParams) {
   opensocial.Container.call(this);

+  var path = configParams.path;
+  // Path for social API calls
+  this.path_ = path.replace("%host%", document.location.host);
+
+  // Path for calls to invalidate
+  var invalidatePath = configParams.invalidatePath;
+  this.invalidatePath_ = invalidatePath.replace("%host%",
+      document.location.host);
+
+  var supportedFieldsArray = configParams.supportedFields;
   var supportedFieldsMap = {};
   for (var objectType in supportedFieldsArray) {
     if (supportedFieldsArray.hasOwnProperty(objectType)) {
@@ -37,8 +47,8 @@
     }
   }

- this.environment_ = new opensocial.Environment(domain, supportedFieldsMap);
-  this.baseUrl_ = baseUrl;
+  this.environment_ = new opensocial.Environment(configParams.domain,
+      supportedFieldsMap);

   this.securityToken_ = shindig.auth.getSecurityToken();

@@ -206,7 +216,7 @@
       "POST_DATA" : gadgets.json.stringify(jsonBatchData)
     };

-    var url = [this.baseUrl_, "/social/rpc"];
+    var url = [this.path_];
     var token = shindig.auth.getSecurityToken();
     if (token) {
       url.push("?st=", encodeURIComponent(token));
@@ -439,7 +449,7 @@
       "POST_DATA" : gadgets.json.stringify(rpc)
     };

-    var url = [this.baseUrl_, "/gadgets/api/rpc"];
+    var url = [this.invalidatePath_];
     var token = shindig.auth.getSecurityToken();
     if (token) {
       url.push("?st=", encodeURIComponent(token));
Index: features/src/main/javascript/features/opensocial-current/feature.xml
===================================================================
--- features/src/main/javascript/features/opensocial-current/feature.xml (revision 793628) +++ features/src/main/javascript/features/opensocial-current/feature.xml (working copy)
@@ -34,13 +34,8 @@

       gadgets.config.register("opensocial-0.8", requiredConfig,
         function(config) {
-          var configParams = config["opensocial-0.8"];
-          var path = configParams.path;
-          path = path.replace("%host%", document.location.host);
-
           ShindigContainer = function() {
-            JsonRpcContainer.call(this, path,
-            configParams.domain, configParams.supportedFields);
+            JsonRpcContainer.call(this, config["opensocial-0.8"]);
           };
           ShindigContainer.inherits(JsonRpcContainer);

Index: config/container.js
===================================================================
--- config/container.js (revision 793628)
+++ config/container.js (working copy)
@@ -136,7 +136,9 @@
   "opensocial-0.8" : {
     // Path to fetch opensocial data from
     // Must be on the same domain as the gadget rendering server
-    "path" : "http://%host%";,
+    "path" : "http://%host%/social/rpc";,
+    // Path to issue invalidate calls
+    "invalidatePath" : "http://%host%/gadgets/api/rpc";,
     "domain" : "shindig",
     "enableCaja" : false,
     "supportedFields" : {


Reply via email to