-
Notifications
You must be signed in to change notification settings - Fork 0
/
ng-runabove.min.js
2 lines (2 loc) · 4.85 KB
/
ng-runabove.min.js
1
2
/*! ngRunabove v0.1.1 by Jean-Philippe Blary (@blary_jp) - https://github.com/blaryjp/ng-runabove - License MIT */
angular.module("ngRunabove",[]),angular.module("ngRunabove").provider("Runabove",function(){"use strict";var a="https://manager.runabove.com/api/1.0",b=[{method:"GET",path:"/*"},{method:"POST",path:"/*"},{method:"PUT",path:"/*"},{method:"DELETE",path:"/*"}],c={ak:"",as:"",ck:""};this.setBaseUrl=function(b){a=b},this.setAppKey=function(a){c.ak=a},this.setAppSecret=function(a){c.as=a},this.setConsumerKey=function(a){c.ck=a,localStorage.setItem("runabove-ck",a)},this.setAccessRules=function(a){b=a},this.$get=["$http","$q","$cacheFactory","$window",function(d,e,f,g){function h(f){return m()&&(localStorage.removeItem("runabove-ck"),c.ck=null),d({method:"POST",url:a+"/auth/credential",headers:{"X-Ra-Application":c.ak},data:{accessRules:b,redirection:f||g.location.href}}).then(function(a){return c.ck=a.data.consumerKey,localStorage.setItem("runabove-ck",c.ck),g.location=a.data.validationUrl,a.data},function(a){return e.reject(a)})}function i(){return m()?n().then(function(b){return d({method:"POST",url:a+"/auth/logout",headers:p({method:"POST",url:a+"/auth/logout",body:"",diff:b})}).then(function(){localStorage.removeItem("runabove-ck"),c.ck=null},function(a){return localStorage.removeItem("runabove-ck"),c.ck=null,e.reject(a)})},function(a){return e.reject(a)}):e.reject({data:{errorCode:"NOT_CREDENTIAL",message:"You're not logged."}})}function j(a){return m()||a.noAuthentication?n().then(function(b){var c=a.params;return a.params&&~a.url.indexOf("{")&&(c=angular.copy(a.params),angular.forEach(c,function(b,d){new RegExp("{"+d+"}").test(a.url)&&(a.url=a.url.replace("{"+d+"}",encodeURIComponent(b)),delete c[d])})),a.params=c,a.headers=a.noAuthentication?p():p({method:a.method,url:a.url,body:a.data?angular.toJson(a.data):"",diff:b}),d(a).then(function(a){return a.data},function(a){return e.reject(a)})},function(a){return e.reject(a)}):e.reject({data:{errorCode:"NOT_CREDENTIAL",message:"You're not logged."}})}function k(b){return d({method:"GET",url:a+b+".json",cache:r,headers:p()}).then(function(a){return a.data},function(a){return e.reject(a)})}function l(a,b){return k(a).then(function(a){return b?a.models[b]?a.models[b]:e.reject({data:{errorCode:"NOT_FOUND",message:"Models not found."}}):a.models},function(a){return e.reject(a)})}function m(){return!!c.ck}function n(){return d({method:"GET",url:a+"/time",cache:r,headers:p()}).then(function(a){return Math.floor(Date.now()/1e3)-a.data},function(a){return e.reject(a)})}function o(a){return"$1$"+q([c.as,c.ck,a.method,a.url,a.body,a.diff].join("+"))}function p(a){if(a){var b=(Math.floor(Date.now()/1e3)-a.diff).toString();return{"Content-Type":"application/json;charset=utf-8","X-Ra-Application":c.ak,"X-Ra-Consumer":c.ck,"X-Ra-Timestamp":b,"X-Ra-Signature":o({method:a.method,url:a.url,body:a.body,diff:b})}}return{"Content-Type":"application/json;charset=utf-8"}}function q(a){function b(a,b){var c=a<<b|a>>>32-b;return c}function c(a){var b,c,d="";for(b=7;b>=0;b--)c=a>>>4*b&15,d+=c.toString(16);return d}function d(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):d>127&&2048>d?(b+=String.fromCharCode(d>>6|192),b+=String.fromCharCode(63&d|128)):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128),b+=String.fromCharCode(63&d|128))}return b}var e,f,g,h,i,j,k,l,m,n=new Array(80),o=1732584193,p=4023233417,q=2562383102,r=271733878,s=3285377520;a=d(a);var t=a.length,u=new Array;for(f=0;t-3>f;f+=4)g=a.charCodeAt(f)<<24|a.charCodeAt(f+1)<<16|a.charCodeAt(f+2)<<8|a.charCodeAt(f+3),u.push(g);switch(t%4){case 0:f=2147483648;break;case 1:f=a.charCodeAt(t-1)<<24|8388608;break;case 2:f=a.charCodeAt(t-2)<<24|a.charCodeAt(t-1)<<16|32768;break;case 3:f=a.charCodeAt(t-3)<<24|a.charCodeAt(t-2)<<16|a.charCodeAt(t-1)<<8|128}for(u.push(f);u.length%16!=14;)u.push(0);for(u.push(t>>>29),u.push(t<<3&4294967295),e=0;e<u.length;e+=16){for(f=0;16>f;f++)n[f]=u[e+f];for(f=16;79>=f;f++)n[f]=b(n[f-3]^n[f-8]^n[f-14]^n[f-16],1);for(h=o,i=p,j=q,k=r,l=s,f=0;19>=f;f++)m=b(h,5)+(i&j|~i&k)+l+n[f]+1518500249&4294967295,l=k,k=j,j=b(i,30),i=h,h=m;for(f=20;39>=f;f++)m=b(h,5)+(i^j^k)+l+n[f]+1859775393&4294967295,l=k,k=j,j=b(i,30),i=h,h=m;for(f=40;59>=f;f++)m=b(h,5)+(i&j|i&k|j&k)+l+n[f]+2400959708&4294967295,l=k,k=j,j=b(i,30),i=h,h=m;for(f=60;79>=f;f++)m=b(h,5)+(i^j^k)+l+n[f]+3395469782&4294967295,l=k,k=j,j=b(i,30),i=h,h=m;o=o+h&4294967295,p=p+i&4294967295,q=q+j&4294967295,r=r+k&4294967295,s=s+l&4294967295}var m=c(o)+c(p)+c(q)+c(r)+c(s);return m.toLowerCase()}var r=f("RunaboveProvider");c.ck=localStorage.getItem("runabove-ck");var s={login:h,logout:i,isLogged:m,getSchema:k,getModels:l};return angular.forEach(["get","put","post","delete","remove","del"],function(b){s[b]=function(c,d){return j(angular.extend(d||{},{method:("remove"===b||"del"===b?"delete":b).toUpperCase(),url:a+c}))}}),s}]});