UNPKG

playbasis.js

Version:
294 lines (80 loc) 4.13 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.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); }; };