playbasis
Version:
Playbasis Javascript SDK
250 lines (129 loc) • 2.84 kB
JavaScript
;
module.exports=function(Playbasis){
var helpers=Playbasis.helpers={};
helpers.joinParams=function(paramKvp)
{
if(paramKvp==null)
return"";
var encodedParams="";
var params=Object.keys(paramKvp);
var count=params.length;
for(var i=0;i<count;i++)
{
encodedParams+=encodeURIComponent(params[i])+"="+encodeURIComponent(paramKvp[params[i]]);
if(i<count-1)
encodedParams+="&";
}
return encodedParams;
};
helpers.joinIfNotNullAsUrlParam=function(param)
{
if(arguments.length==0||arguments.length%2!=0)
throw"number of argument cannot be 0, and must be multiple of 2";
var result="";
for(var i=0;i<arguments.length;i+=2){
var key=arguments[i];
var value=arguments[i+1];
if(key!=null&&value!=null){
if(i!=0){
result+="&";
}
result+=encodeURIComponent(key)+"="+encodeURIComponent(value);
}
}
return result;
};
helpers.appendAndJoinIfNotNullAsUrlParam=function(param)
{
if(arguments.length==0||arguments.length%2!=0)
throw"number of argument cannot be 0, and must be multiple of 2";
var result="";
for(var i=0;i<arguments.length;i+=2){
var key=arguments[i];
var value=arguments[i+1];
if(key!=null&&value!=null){
result+="&";
result+=encodeURIComponent(key)+"="+encodeURIComponent(value);
}
}
return result;
};
helpers.appendAndJoinIfNotNullAsUrlParam2=function(keys,defaultValues,inputObj)
{
var result="";
for(var i=0;i<keys.length;i++){
var key=keys[i];
var value=defaultValues[i];
if(inputObj!=null){
if(inputObj[key]!=null){
value=inputObj[key];
}
}
if(key!=null&&value!=null){
result+="&";
result+=encodeURIComponent(key)+"="+encodeURIComponent(value);
}
}
return result;
};
helpers.createObjectFromTarget=function(obj,keysLimit)
{
var retObj={};
if(obj==null)
return retObj;
var keys=Object.keys(obj);
for(var i=0;i<keys.length;i++){
var key=keys[i];
var value=obj[key];
if(key!=null&&value!=null){
if(keysLimit!=null){
if(keysLimit.indexOf(key)!=-1){
retObj[key]=value;
}
}else
{
retObj[key]=value;
}
}
}
return retObj;
};
helpers.combineObjects=function(objA,objB)
{
var retObj={};
if(objA==null&&objB==null)
return retObj;
if(objA==null){
retObj=objB;
return retObj;
}else
if(objB==null){
retObj=objA;
return retObj;
}
var keys=Object.keys(objB);
retObj=objA;
for(var i=0;i<keys.length;i++){
var key=keys[i];
var value=objB[key];
if(key!=null&&value!=null){
retObj[key]=value;
}
}
return retObj;
};
helpers.createApiUrl=function(method,param)
{
var options=[];
for(var i=1;i<arguments.length;i++){
options.push(arguments[i]);
}
if(options&&options.length>0){
var optionsString=options.join("/");
return Playbasis.env.global.baseUrl+"/"+method+"/"+optionsString+"?api_key="+Playbasis.env.global.apiKey;
}else
{
return Playbasis.env.global.baseUrl+"/"+method+"?api_key="+Playbasis.env.global.apiKey;
}
};
};