playbasis
Version:
Playbasis Javascript SDK
322 lines (104 loc) • 5.15 kB
JavaScript
;
module.exports=function(Playbasis){
var http=Playbasis.http;
var helpers=Playbasis.helpers;
var apiMethodUrl="Content";
var api=Playbasis.contentApi={};
api.retrieveContent=function(options){
var keys=["node_id","title","category","date_check","sort","order","offset","limit","full_html","pin","tags","status","player_id","only_new_content","only_new_feedback"];
var dvalues=[null,null,null,"true","title","asc",0,20,"false",null,null,null,null,null,null];
return http.getJsonAsync(helpers.createApiUrl(apiMethodUrl)+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options));
};
api.retrieveGameSetting=function(options){
var keys=["node_id","title","category","date_check","sort","order","offset","limit","full_html","pin","tags","status","player_id","only_new_content","only_new_feedback"];
var dvalues=[null,null,null,"true","title","asc",0,20,"false",null,null,null,null,null,null];
function parseGameSettingConfig(data){
if(data.success){
var csv=data.response.result[0].summary;
var csvText=csv.split('\n');
var obj={};
csvText.forEach(function(cell){
var kv=cell.split('>');
var varName=kv[0].trim();
var varValue=kv[1].trim();
if(varValue=='true'||varValue=='false'){
obj[varName]=varValue=='true'?true:false;
}else{
if(isNaN(varValue)){
obj[varName]=varValue;
}else{
obj[varName]=Number(varValue);
}
}
});
return obj;
}else{
return{};
}
}
return new Playbasis.Promise(function(resolve,reject){
http.
getJsonAsync(helpers.createApiUrl(apiMethodUrl)+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options)).
then(function(data){
resolve(parseGameSettingConfig(data));
}).
catch(reject);
});
};
api.countContent=function(options){
var keys=["title","category","date_check","pin","tags","status","player_id","only_new_content","only_new_feedback"];
var dvalues=[null,null,"false",null,null,null,null,null,null,null];
return http.getJsonAsync(helpers.createApiUrl(apiMethodUrl,"count")+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options));
};
api.createContent=function(title,summary,detail,options){
var obj={token:Playbasis.env.global.token,title:title,summary:summary,detail:detail};
var selectedOptionsObj=helpers.createObjectFromTarget(options,["node_id","category","image","status","date_start","date_end","player_id","pin","tags","key","value"]);
var combineObj=helpers.combineObjects(obj,selectedOptionsObj);
return http.postJsonAsync(helpers.createApiUrl(apiMethodUrl,"addContent"),combineObj);
};
api.updateContent=function(nodeId,updates){
var obj={token:Playbasis.env.global.token};
var selectedOptionsObj=helpers.createObjectFromTarget(updates,["title","summary","detail","category","image","status","date_start","date_end","pin","tags","key","value"]);
var combineObj=helpers.combineObjects(obj,selectedOptionsObj);
return http.postJsonAsync(helpers.createApiUrl(apiMethodUrl,nodeId,"update"),obj);
};
api.deleteContent=function(nodeId){
var obj={token:Playbasis.env.global.token};
return http.postJsonAsync(helpers.createApiUrl(apiMethodUrl,nodeId,"delete"),obj);
};
api.retrieveCategory=function(options){
var keys=["id","name","sort","order","offset","limit"];
var dvalues=[null,null,null,null,null,null];
return http.getJsonAsync(helpers.createApiUrl(apiMethodUrl,"category")+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options));
};
api.createCategory=function(name){
var obj={token:Playbasis.env.global.token,name:name};
return http.postJsonAsync(helpers.createApiUrl(apiMethodUrl,"category","create"),obj);
};
api.updateCategory=function(id,name){
var obj={token:Playbasis.env.global.token,id:id,name:name};
return http.postJsonAsync(helpers.createApiUrl(apiMethodUrl,"category","update"),obj);
};
api.deleteCategory=function(id){
var obj={token:Playbasis.env.global.token,id:id};
return http.postJsonAsync(helpers.createApiUrl(apiMethodUrl,"category","delete"),obj);
};
api.likeContent=function(nodeId,playerId,options){
var obj={token:Playbasis.env.global.token};
var selectedOptionsObj=helpers.createObjectFromTarget(options,["key","value"]);
var combineObj=helpers.combineObjects(obj,selectedOptionsObj);
return http.postJsonAsync(helpers.createApiUrl(apiMethodUrl,nodeId,"player",playerId,"like"),combineObj);
};
api.dislikeContent=function(nodeId,playerId,options){
var obj={token:Playbasis.env.global.token};
var selectedOptionsObj=helpers.createObjectFromTarget(options,["key","value"]);
var combineObj=helpers.combineObjects(obj,selectedOptionsObj);
return http.postJsonAsync(helpers.createApiUrl(apiMethodUrl,nodeId,"player",playerId,"dislike"),combineObj);
};
api.giveFeedbackContent=function(nodeId,playerId,feedback,options){
var obj={token:Playbasis.env.global.token,feedback:feedback};
var selectedOptionsObj=helpers.createObjectFromTarget(options,["key","value"]);
var combineObj=helpers.combineObjects(obj,selectedOptionsObj);
return http.postJsonAsync(helpers.createApiUrl(apiMethodUrl,nodeId,"player",playerId,"feedback"),combineObj);
};
};