playbasis
Version:
Playbasis Javascript SDK
733 lines (234 loc) • 9.36 kB
JavaScript
;
module.exports=function(Playbasis){
var http=Playbasis.http;
var helpers=Playbasis.helpers;
var apiMethod="Player";
var _api=Playbasis.playerApi={};
_api.playerPublicInfo=function(playerId)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId));
};
_api.playerInfo=function(playerId)
{
return http.postJsonAsync(helpers.createApiUrl(apiMethod,playerId),{token:Playbasis.env.global.token});
};
_api.listPlayer=function(playerIdArray)
{
var playerIds=playerIdArray.join(",");
return http.postJsonAsync(helpers.createApiUrl(apiMethod,"list"),{token:Playbasis.env.global.token,list_player_id:playerIds});
};
_api.playerDetailedPublicInfo=function(playerId)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"data","all"));
};
_api.playerDetailedInfo=function(playerId)
{
return http.postJsonAsync(helpers.createApiUrl(apiMethod,playerId,"data","all"),{token:Playbasis.env.global.token});
};
_api.listCustomFieldsOfPlayer=function(playerId)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"custom"));
};
_api.setCustomFieldOfPlayer=function(playerId,key,value)
{
return http.postJsonAsync(helpers.createApiUrl(apiMethod,playerId,"custom"),{token:Playbasis.env.global.token,key:key,value:value});
};
_api.register=function(playerId,email,options)
{
var obj={token:Playbasis.env.global.token,username:playerId,email:email};
if(options!=null){
for(var k in options){
if(k!="token"&&
k!="username"&&
k!="email"){
obj[k]=options[k];
}
}
}
return http.postJsonAsync(helpers.createApiUrl(apiMethod,playerId,"register"),obj);
};
_api.referral=function(playerId,referralCode,options)
{
var obj={token:Playbasis.env.global.token,player_id:playerId,referral_code:referralCode};
if(options!=null){
for(var k in options){
if(k!="token"&&
k!="player_id"&&
k!="referral_code"){
obj[k]=options[k];
}
}
}
return http.postJsonAsync(helpers.createApiUrl(apiMethod,"referral"),obj);
};
_api.update=function(playerId,updates)
{
var obj={token:Playbasis.env.global.token};
var selectiveUpdatesObj=helpers.createObjectFromTarget(updates,["username","email","image","phone_number","exp","level","facebook_id","twitter_id","password","first_name","last_name","gender","birth_date","device_id"]);
var combinedObj=helpers.combineObjects(obj,selectiveUpdatesObj);
return http.postJsonAsync(helpers.createApiUrl(apiMethod,playerId,"update"),combinedObj);
};
_api.resetPlayerPassword=function(email)
{
var postObj={token:Playbasis.env.global.token,email:email};
return http.postJsonAsync(helpers.createApiUrl(apiMethod,"password","email"),postObj);
};
_api.verifyPlayerEmail=function(playerId)
{
return http.postJsonAsync(helpers.createApiUrl(apiMethod,playerId,"email","verify"),{token:Playbasis.env.global.token});
};
_api.delete=function(playerId)
{
return http.postJsonAsync(helpers.createApiUrl(apiMethod,playerId,"delete"),{token:Playbasis.env.global.token});
};
_api.login=function(playerId)
{
return http.postJsonAsync(helpers.createApiUrl(apiMethod,playerId,"login"),{token:Playbasis.env.global.token});
};
_api.requestOTP=function(playerId)
{
return http.postJsonAsync(helpers.createApiUrl(apiMethod,"auth",playerId,"requestOTPCode"),{token:Playbasis.env.global.token});
};
_api.requestOTPforSetupPhone=function(playerId,phoneNumber)
{
return http.postJsonAsync(helpers.createApiUrl(apiMethod,"auth",playerId,"setupPhone"),{token:Playbasis.env.global.token,phone_number:phoneNumber});
};
_api.performOTPVerification=function(playerId,OTPcode)
{
return http.postJsonAsync(helpers.createApiUrl(apiMethod,"auth",playerId,"verifyOTPCode"),{token:Playbasis.env.global.token,code:OTPcode});
};
_api.logout=function(playerId)
{
return http.postJsonAsync(helpers.createApiUrl(apiMethod,playerId,"logout"),{token:Playbasis.env.global.token});
};
_api.listActivePlayerSessions=function(playerId)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"sessions"));
};
_api.findPlayerBySession=function(sessionId)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,"session",sessionId));
};
_api.points=function(playerId)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"points"));
};
_api.point=function(playerId,pointName)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"point",pointName));
};
_api.pointHistory=function(playerId,options)
{
var pointName=null;
var offset=0;
var limit=20;
var order="desc";
var keys=["point_name","offset","limit","order"];
var dvalues=[null,0,20,"desc"];
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"point_history")+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options));
};
_api.actionTime=function(playerId,actionName)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"action",actionName,"time"));
};
_api.lastAction=function(playerId)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"action","time"));
};
_api.actionCount=function(playerId,actionName)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"action",actionName,"count"));
};
_api.level=function(level)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,"level",level));
};
_api.levels=function()
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,"levels"));
};
_api.badge=function(playerId,options)
{
var keys=["tags"];
var defaultValues=[null];
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"badge")+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,defaultValues,options));
};
_api.allBadges=function(playerId,options)
{
var keys=["tags"];
var defaultValues=[null];
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"badgeAll")+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,defaultValues,options));
};
_api.rank=function(rankBy,limit,options)
{
var keys=["mode"];
var dvalues=["all-time"];
return http.getJsonAsync(helpers.createApiUrl(apiMethod,"rank",rankBy,limit)+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options));
};
_api.ranks=function(limit,options)
{
var keys=["mode"];
var dvalues=["all-tiome"];
return http.getJsonAsync(helpers.createApiUrl(apiMethod,"ranks",limit)+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options));
};
_api.goods=function(playerId,options)
{
var keys=["tags","status"];
var dvalues=[null,"active"];
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"goods")+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options));
};
_api.questOfPlayer=function(playerId,questId)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,"quest",questId)+"&player_id="+playerId);
};
_api.questListOfPlayer=function(playerId,options)
{
var keys=["player_id","tags"];
var dvalues=[playerId,null];
return http.getJsonAsync(helpers.createApiUrl(apiMethod,"quest")+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options));
};
_api.allQuestsOfPlayer=function(playerId)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,"questAll",playerId));
};
_api.questRewardHistory=function(playerId,options)
{
var keys=["offset","limit"];
var dvalues=[0,50];
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"quest_reward_history")+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options));
};
_api.deductReward=function(playerId,reward,amount,options)
{
var postObj={token:Playbasis.env.global.token,reward:reward,amount:amount};
var optionObj=helpers.createObjectFromTarget(options,["force"]);
var combinedObj=helpers.combineObjects(postObj,optionObj);
return http.postJsonAsync(helpers.createApiUrl(apiMethod,playerId,"deduct"),combinedObj);
};
_api.deductBadge=function(playerId,badge,amount,options)
{
var postObj={token:Playbasis.env.global.token,badge:badge,amount:amount};
var optionObj=helpers.createObjectFromTarget(options,["force"]);
var combinedObj=helpers.combineObjects(postObj,optionObj);
return http.postJsonAsync(helpers.createApiUrl(apiMethod,playerId,"deduct","badge"),combinedObj);
};
_api.giveGift=function(sentPlayerId,receivedPlayerId,giftId,type,amount)
{
var postObj={token:Playbasis.env.global.token,sent_player_id:sentPlayerId,received_player_id:receivedPlayerId,gift_id:giftId,type:type,amount:amount};
return http.postJsonAsync(helpers.createApiUrl(apiMethod,sentPlayerId,"giveGift",type),postObj);
};
_api.playerReferralCode=function(playerId)
{
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"code"));
};
_api.goodsCount=function(playerId,options)
{
var keys=["tags","status"];
var dvalues=[null,"active"];
return http.getJsonAsync(helpers.createApiUrl(apiMethod,playerId,"goods/count")+helpers.appendAndJoinIfNotNullAsUrlParam2(keys,dvalues,options));
};
_api.favoriteGoods=function(playerId,goodsId,status)
{
var postObj={token:Playbasis.env.global.token,goods_id:goodsId,status:status?"true":"false"};
return http.postJsonAsync(helpers.createApiUrl(apiMethod,playerId,"goods","favorite"),postObj);
};
};