playbasis
Version:
Playbasis Javascript SDK
209 lines (64 loc) • 2.73 kB
JavaScript
;
module.exports=function(Playbasis){
var http=Playbasis.http;
var helpers=Playbasis.helpers;
var apiMethodUrl="Quiz";
var api=Playbasis.quizApi={};
api.listOfActiveQuizzes=function(options)
{
var keys=["player_id","type","tags"];
var dvalues=[null,null,null];
return http.getJsonAsync(helpers.createApiUrl(apiMethodUrl,"list")+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options));
};
api.detailOfQuiz=function(quizId,options)
{
var keys=["player_id"];
var dvalues=[null];
return http.getJsonAsync(helpers.createApiUrl(apiMethodUrl,quizId,"detail")+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options));
};
api.randomQuizForPlayer=function(playerId,options)
{
var keys=["player_id","type","tags"];
var dvalues=[playerId,null,null];
return http.getJsonAsync(helpers.createApiUrl(apiMethodUrl,"random")+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options));
};
api.listQuizDone=function(playerId,limit)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethodUrl,"player",playerId,limit));
};
api.listPendingQuiz=function(playerId,limit)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethodUrl,"player",playerId,"pending",limit));
};
api.getQuestionFromQuiz=function(quizId,playerId,options)
{
var keys=["player_id","question_id","random"];
var dvalues=[playerId,null,null];
return http.getJsonAsync(helpers.createApiUrl(apiMethodUrl,quizId,"question")+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options));
};
api.getQuestionFromQuiz_resetTimeStamp=function(quizId,playerId,options)
{
var obj={token:Playbasis.env.global.token,player_id:playerId};
var selectedOptionsObj=helpers.createObjectFromTarget(options,["question_id","random"]);
var combineObj=helpers.combineObjects(obj,selectedOptionsObj);
return http.postJsonAsync(helpers.createApiUrl(apiMethodUrl,quizId,"question"),combineObj);
};
api.answerQuestion=function(quizId,playerId,questionId,optionId,answer)
{
var obj={token:Playbasis.env.global.token,player_id:playerId,question_id:questionId,option_id:optionId,answer:answer};
return http.postJsonAsync(helpers.createApiUrl(apiMethodUrl,quizId,"answer"),obj);
};
api.rankPlayersByScore=function(quizId,limit)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethodUrl,quizId,"rank",limit));
};
api.quizStatistics=function(quizId)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethodUrl,quizId,"stat"));
};
api.resetQuiz=function(playerId,quizId)
{
var obj={token:Playbasis.env.global.token,player_id:playerId,quiz_id:quizId};
return http.postJsonAsync(helpers.createApiUrl(apiMethodUrl,"reset"),obj);
};
};