108 lines
3.4 KiB
JavaScript
108 lines
3.4 KiB
JavaScript
const RewardModel = require('../rewards/rewards.model');
|
|
const Activity = require("../activity/activity.model");
|
|
const config = require('../config');
|
|
|
|
exports.AddReward = async(req, res) =>
|
|
{
|
|
var rewardId = req.body.tid;
|
|
var group = req.body.group;
|
|
var repeat = req.body.repeat;
|
|
var xp = req.body.xp;
|
|
var coins = req.body.coins;
|
|
var cardfragments = req.body.cardfragments;
|
|
var crystals = req.body.crystals;
|
|
var cards = req.body.cards;
|
|
var packs = req.body.packs;
|
|
var decks = req.body.decks;
|
|
var avatars = req.body.avatars;
|
|
var cardbacks = req.body.cardbacks;
|
|
|
|
if(!rewardId || typeof rewardId !== "string")
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
|
|
if(group && typeof group !== "string")
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
|
|
if(xp && !Number.isInteger(xp))
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
if(coins && !Number.isInteger(coins))
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
if(cardfragments && !Number.isInteger(cardfragments))
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
if(crystals && !Number.isInteger(crystals))
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
if(cards && !Array.isArray(cards))
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
if(packs && !Array.isArray(packs))
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
if(decks && !Array.isArray(decks))
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
if(avatars && !Array.isArray(avatars))
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
if(cardbacks && !Array.isArray(cardbacks))
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
|
|
var reward_data = {
|
|
tid: rewardId,
|
|
group: group || "",
|
|
repeat: repeat || false,
|
|
xp: xp || 0,
|
|
coins: coins || 0,
|
|
cardfragments: cardfragments || 0,
|
|
crystals: crystals || 0,
|
|
cards: cards || [],
|
|
packs: packs || [],
|
|
decks: decks || [],
|
|
avatars: avatars || [],
|
|
cardbacks: cardbacks || [],
|
|
}
|
|
|
|
//Update or create
|
|
var reward = await RewardModel.get(rewardId);
|
|
if(reward)
|
|
reward = await RewardModel.update(reward, reward_data);
|
|
else
|
|
reward = await RewardModel.create(reward_data);
|
|
|
|
if(!reward)
|
|
res.status(500).send({error: "Error updating reward"});
|
|
|
|
//Activity
|
|
const act = await Activity.LogActivity("reward_add", req.jwt.username, reward);
|
|
if (!act) return res.status(500).send({ error: "Failed to log activity!" });
|
|
|
|
return res.status(200).send(reward);
|
|
};
|
|
|
|
exports.DeleteReward = async(req, res) => {
|
|
RewardModel.remove(req.params.tid);
|
|
return res.status(204).send({});
|
|
};
|
|
|
|
exports.DeleteAll = async(req, res) => {
|
|
RewardModel.removeAll();
|
|
return res.status(204).send({});
|
|
};
|
|
|
|
exports.GetReward = async(req, res) =>
|
|
{
|
|
var rewardTid = req.params.tid;
|
|
|
|
if(!rewardTid)
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
|
|
var reward = await RewardModel.get(rewardTid);
|
|
if(!reward)
|
|
return res.status(404).send({error: "Reward not found: " + rewardTid});
|
|
|
|
return res.status(200).send(reward.toObj());
|
|
};
|
|
|
|
exports.GetAll = async(req, res) =>
|
|
{
|
|
var rewards = await RewardModel.getAll();
|
|
return res.status(200).send(rewards);
|
|
};
|
|
|
|
|