]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojox/rpc/JsonRPC.js
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojox / rpc / JsonRPC.js
diff --git a/static/dojo-release-1.1.1/dojox/rpc/JsonRPC.js b/static/dojo-release-1.1.1/dojox/rpc/JsonRPC.js
new file mode 100644 (file)
index 0000000..1710b31
--- /dev/null
@@ -0,0 +1,58 @@
+if(!dojo._hasResource["dojox.rpc.JsonRPC"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.rpc.JsonRPC"] = true;
+dojo.provide("dojox.rpc.JsonRPC");
+
+dojox.rpc.envelopeRegistry.register(
+       "JSON-RPC-1.0",function(str){return str == "JSON-RPC-1.0"},{
+               serialize: function(smd, method, data, options){
+                       //not converted to json it self. This  will be done, if appropriate, at the 
+                       //transport level
+                       var d = dojox.rpc.toOrdered(method, data);
+                                       d = dojox.rpc.toJson({id: this._requestId++, method: method.name, params: d});
+       
+                       return {
+                               data: d,
+                               contentType: 'application/json',
+                               transport:"POST"
+                       }
+               },
+
+               deserialize: function(results){
+                       var obj = dojox.rpc.resolveJson(results);
+                       if (obj.error) {
+                               var e = new Error(obj.error);
+                               e._rpcErrorObject = obj.error;
+                               return e;
+                       }
+                       return obj.result || true;
+               }
+       }
+);
+
+dojox.rpc.envelopeRegistry.register(
+       "JSON-RPC-1.2",function(str){return str == "JSON-RPC-1.2"},{
+               serialize: function(smd, method, data, options){
+                       var trans = method.transport || smd.transport || "POST";
+                       var d = dojox.rpc.toNamed(method, data);
+       
+                       d = dojox.rpc.toJson({id: this._requestId++, method: method.name, params: data});
+                       return {
+                               data: d,
+                               contentType: 'application/json',
+                               transport:"POST"
+                       }
+               },
+       
+               deserialize: function(results){
+                       var obj = dojox.rpc.resolveJson(results);
+                       if (obj.error) {
+                               var e = new Error(obj.error.message);
+                               e._rpcErrorObject = obj.error;
+                               return e;
+                       }
+                       return obj.result || true;
+               }
+       }
+);
+
+}