rajaongkir-jquery
Version:
RajaOngkir API for jQuery
7 lines • 2.56 kB
JavaScript
/**
* RajaOngkir API jQuery plugin
* @author M ABD AZIZ ALFIAN
* @version 1.1.2
* @repository https://github.com/aalfiann/rajaongkir-jquery
*/
!function(n){n.fn.RajaOngkir=function(d,t){if(!n.trim(d))throw new Error("RajaOngkir Account Type is required!");if(!n.trim(t))throw new Error("RajaOngkir API Key is required!");var i={apikey:t,api_url:"https://"+("pro"!==(d=d.toLowerCase())?"api":"pro")+".rajaongkir.com/"+("pro"!==d?d:"api")+"/",cors_proxy:"https://imgfo-gist.herokuapp.com/"},e={url:"",method:"get",data:"",headers:{"content-type":"application/x-www-form-urlencoded",key:i.apikey}};return this.randomText=function(t){for(var e=new Date,i=("00"+(e.getMonth()+1)).slice(-2)+""+("00"+e.getDate()).slice(-2)+e.getFullYear()+"-"+("00"+e.getHours()).slice(-2),n=e.getMinutes(),r=t,o=0,a=0;a<=60;a+=r)a<=n&&o++;return i+o},this.endpoint=function(t){var e="";return-1!==t.indexOf("international")&&(e="v2/"),i.cors_proxy+i.api_url+e+t+"?_="+this.randomText(5)},this.makeRequest=function(t){t=n.extend({},e,t);return n.ajax({url:t.url,type:t.method,data:t.data,headers:t.headers})},this.province=function(t){return this.makeRequest({url:this.endpoint("province"),method:"get",data:{id:t}})},this.city=function(t,e){return this.makeRequest({url:this.endpoint("city"),method:"get",data:{id:t,province:e}})},this.cost=function(t,e,i,n,r,o,a,s,u,h){h={origin:t,originType:r,destination:e,destinationType:o,weight:parseInt(i),courier:n,length:a,width:s,height:u,diameter:h};return"pro"!==d&&(delete h.originType,delete h.destinationType,delete h.length,delete h.width,delete h.height,delete h.diameter),this.makeRequest({url:this.endpoint("cost"),method:"post",data:h})},this.subdistrict=function(t,e){return this.makeRequest({url:this.endpoint("subdistrict"),method:"get",data:{city:t,id:e}})},this.internationalOrigin=function(t,e){return this.makeRequest({url:this.endpoint("internationalOrigin"),method:"get",data:{id:t,province:e}})},this.internationalDestination=function(t){return this.makeRequest({url:this.endpoint("internationalDestination"),method:"get",data:{id:t}})},this.internationalCost=function(t,e,i,n,r,o,a){return this.makeRequest({url:this.endpoint("internationalCost"),method:"post",data:{origin:t,destination:e,weight:parseInt(i),courier:n,length:r,width:o,height:a}})},this.currency=function(){return this.makeRequest({url:this.endpoint("currency"),method:"get"})},this.waybill=function(t,e){return this.makeRequest({url:this.endpoint("waybill"),method:"post",data:{courier:t,waybill:e}})},this}}(jQuery);