packages feed

rest-gen 0.16.0.4 → 0.16.1

raw patch · 4 files changed

+36/−15 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,5 +1,13 @@ # Changelog +#### 0.16.1++##### JavaScript++* When instantiating API object you can now optionally pass a `modifyRequest` argument of type `RequestObject -> RequestObject` which is called before every request.++* NodeJS: The `cookieJar` instance member is no longer available on sub resources, it can now only be accessed from the top-level api object. This is a breaking change for generated clients. It was a bad idea to use this to begin with since the cookie jar is shared across the entire api object.+ #### 0.16.0.4  * JavaScript: Minor simplification in the template.
files/Javascript/base.js view
@@ -1,14 +1,24 @@ var isNodeJs = typeof module === "object" && module && typeof module.exports === "object";  var $apinamespace$ =-  function (url, secureUrl)+  function (url, secureUrl, modifyRequest)   {+    var self = this;     var postfix          = '/v' + this.version + '/';     var contextUrl       = url + postfix;     var secureContextUrl = (secureUrl || url.replace(/^http:/, "https:")) + postfix;-    var cookieJar = isNodeJs ? require('request').jar() : undefined; -    $apinamespace$.setContext(this, contextUrl, secureContextUrl, cookieJar);+    this.cookieJar = isNodeJs ? require('request').jar() : undefined;++    if(!modifyRequest) modifyRequest = function(req) { return req; };++    var finalModifyRequest = function(req)+    {+      if (isNodeJs) req.jar = self.cookieJar;+      return modifyRequest(req);+    }++    $apinamespace$.setContext(this, contextUrl, secureContextUrl, finalModifyRequest);   };  if (isNodeJs)@@ -40,7 +50,7 @@ $apinamespace$.defaultAjaxOptions = {}; $apinamespace$.defaultHeaders = {}; -function jQueryRequest (method, url, params, success, error, contentType, acceptHeader, data, callOpts)+function jQueryRequest (method, url, params, success, error, contentType, acceptHeader, data, callOpts, modifyRequest) {   var q = window.Q || function (a) { return a }; @@ -59,13 +69,15 @@     , data        : data || []     }; +  callData = modifyRequest(callData);+   $apinamespace$.addObject(callData, $apinamespace$.defaultAjaxOptions);   $apinamespace$.addObject(callData, callOpts);    return q($dollar$.ajax(callData)); } -function nodeRequest (method, url, params, onSuccess, onError, contentType, acceptHeader, data, callOpts, cookieJar)+function nodeRequest (method, url, params, onSuccess, onError, contentType, acceptHeader, data, callOpts, modifyRequest) {   var allParams = {};   $apinamespace$.addObject(allParams, params);@@ -85,11 +97,12 @@     , qs      : allParams     , method  : method     , headers : headers-    , jar     : cookieJar     };    if (data) callData.body = data; +  callData = modifyRequest(callData);+   $apinamespace$.addObject(callData, $apinamespace$.defaultAjaxOptions);   $apinamespace$.addObject(callData, callOpts); @@ -144,17 +157,17 @@ }  $apinamespace$.setContext =-  function (obj, url, secureUrl, cookieJar)+  function (obj, url, secureUrl, modifyRequest)   {     obj.contextUrl = url;     obj.secureContextUrl = secureUrl;-    obj.cookieJar = cookieJar;+    obj.modifyRequest = modifyRequest;     for (var fld in obj)     {       if (obj[fld] != undefined && obj[fld].apiObjectType != undefined && obj[fld].apiObjectType == 'resourceDir')       {         var postfix = fld.replace(/([a-z0-9])([A-Z])/g, '$dollar$1-$dollar$2').toLowerCase() + '/';-        $apinamespace$.setContext(obj[fld], url + postfix, secureUrl + postfix, cookieJar);+        $apinamespace$.setContext(obj[fld], url + postfix, secureUrl + postfix, modifyRequest);       }     }   };
rest-gen.cabal view
@@ -1,5 +1,5 @@ name:                rest-gen-version:             0.16.0.4+version:             0.16.1 description:         Documentation and client generation from rest definition. synopsis:            Documentation and client generation from rest definition. maintainer:          code@silk.co
src/Rest/Gen/JavaScript.hs view
@@ -51,10 +51,10 @@ mkAccessorConstructor :: String -> ApiResource -> Code mkAccessorConstructor ns resource =   let constrName = jsDir (cleanName (resName resource))-  in functionDecl constrName ["url", "secureUrl", "cookieJar"] $+  in functionDecl constrName ["url", "secureUrl", "modifyRequest"] $        jsIf (code $ "this instanceof " ++ constrName)-            (proc (ns ++ ".setContext") (code "this, url, secureUrl, cookieJar"))-         <-> jsElse (ret $ call (constrName ++ ".access") (code "url, secureUrl, cookieJar"))+            (proc (ns ++ ".setContext") (code "this, url, secureUrl, modifyRequest"))+         <-> jsElse (ret $ call (constrName ++ ".access") (code "url, secureUrl, modifyRequest"))  mkPreFuncs :: String -> ApiResource -> Code mkPreFuncs ns node =@@ -84,7 +84,7 @@       [ var "postfix" $ "'" ++ urlPart ++ "'"       , var "accessor" $ new "this" . code $  "this.contextUrl + postfix, "                                            ++ "this.secureContextUrl + postfix, "-                                           ++ "this.cookieJar"+                                           ++ "this.modifyRequest"       , "accessor.get" .=. mkFunction ns node       , ret "accessor"       ]@@ -111,7 +111,7 @@           , string $ mOut           , maybe (code "undefined") (\(p, _, f) -> f (code p)) mInp           , code "callOpts"-          , code "this.cookieJar"+          , code "this.modifyRequest"           ]  resourceLoc :: String -> ApiResource -> String