Request.js 2.87 KB
//>>built
define("dojo/request dojo/_base/lang dojo/_base/array dojo/json dojo/_base/declare ./Store ./QueryResults".split(" "),function(k,e,f,l,m,n,g){var h=[].push;return m(n,{constructor:function(){this.headers||(this.headers={});this._targetContainsQueryString=0<=this.target.lastIndexOf("?")},headers:{},parse:l.parse,target:"",ascendingPrefix:"+",descendingPrefix:"-",accepts:"application/json",fetch:function(a){a=this._request(a);return new g(a.data,{response:a.response})},fetchRange:function(a){var b=
a.start,c=a.end,d={};this.useRangeHeaders?d.headers=e.mixin(this._renderRangeHeaders(b,c),a.headers):(d.queryParams=this._renderRangeParams(b,c),a.headers&&(d.headers=a.headers));a=this._request(d);return new g(a.data,{totalLength:a.total,response:a.response})},_issueFetchRequest:function(a,b){return k(a,{method:"GET",headers:b})},_request:function(a){a=a||{};var b=e.delegate(this.headers,{Accept:this.accepts});"headers"in a&&e.mixin(b,a.headers);a=this._renderUrl(a.queryParams);var c=this._issueFetchRequest(a,
b),d=this,b=c.then(function(a){return d.parse(a)});return{data:b.then(function(a){a=a.items||a;for(var b=0,c=a.length;b<c;b++)a[b]=d._restore(a[b],!0);return a}),total:b.then(function(a){a=a.total;return-1<a?a:c.response.then(function(a){return(a=a.getHeader("Content-Range"))&&(a=a.match(/\/(.*)/))&&+a[1]})}),response:c.response}},_renderFilterParams:function(a){var b=a.type,c=a.args;if(!b)return[""];if("string"===b)return[c[0]];if("and"===b||"or"===b)return[f.map(a.args,function(a){var c=this._renderFilterParams(a);
return"and"!==a.type&&"or"!==a.type||a.type===b?c:"("+c+")"},this).join("and"===b?"\x26":"|")];(a=c[1])&&(a._renderUrl?a="("+a._renderUrl()+")":a instanceof Array&&(a="("+a+")"));return[encodeURIComponent(c[0])+"\x3d"+("eq"===b?"":b+"\x3d")+encodeURIComponent(a)]},_renderSortParams:function(a){a=f.map(a,function(a){return(a.descending?this.descendingPrefix:this.ascendingPrefix)+encodeURIComponent(a.property)},this);var b=[];a&&b.push(this.sortParam?encodeURIComponent(this.sortParam)+"\x3d"+a:"sort("+
a+")");return b},_renderRangeParams:function(a,b){var c=[];this.rangeStartParam?c.push(this.rangeStartParam+"\x3d"+a,this.rangeCountParam+"\x3d"+(b-a)):c.push("limit("+(b-a)+(a?","+a:"")+")");return c},_renderSelectParams:function(a){var b=[];this.selectParam?b.push(this.selectParam+"\x3d"+a):b.push("select("+a+")");return b},_renderQueryParams:function(){var a=[];f.forEach(this.queryLog,function(b){var c=b.type,d="_render"+c[0].toUpperCase()+c.substr(1)+"Params";this[d]?h.apply(a,this[d].apply(this,
b.normalizedArguments)):console.warn('Unable to render query params for "'+c+'" query',b)},this);return a},_renderUrl:function(a){var b=this._renderQueryParams(),c=this.target;a&&h.apply(b,a);0<b.length&&(c+=(this._targetContainsQueryString?"\x26":"?")+b.join("\x26"));return c},_renderRangeHeaders:function(a,b){a="items\x3d"+a+"-"+(b-1);return{Range:a,"X-Range":a}}})});