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" : {