UNPKG

playbasis

Version:
322 lines (104 loc) 5.15 kB
'use strict'; 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); }; };