123 lines
3.2 KiB
JavaScript
123 lines
3.2 KiB
JavaScript
const CardModel = require("../cards/cards.model");
|
|
const Activity = require("../activity/activity.model");
|
|
const config = require("../config");
|
|
|
|
exports.AddCard = async (req, res) => {
|
|
var tid = req.body.tid;
|
|
var type = req.body.type;
|
|
var team = req.body.team;
|
|
var rarity = req.body.rarity || "";
|
|
var mana = req.body.mana || 0;
|
|
var attack = req.body.attack || 0;
|
|
var hp = req.body.hp || 0;
|
|
var cost = req.body.cost || 1;
|
|
var packs = req.body.packs || [];
|
|
|
|
if (!tid || typeof tid !== "string")
|
|
return res.status(400).send({ error: "Invalid parameters" });
|
|
|
|
if (!type || typeof type !== "string")
|
|
return res.status(400).send({ error: "Invalid parameters" });
|
|
|
|
if (!team || typeof team !== "string")
|
|
return res.status(400).send({ error: "Invalid parameters" });
|
|
|
|
if (!rarity || typeof rarity !== "string")
|
|
return res.status(400).send({ error: "Invalid parameters" });
|
|
|
|
if (
|
|
!Number.isInteger(mana) ||
|
|
!Number.isInteger(attack) ||
|
|
!Number.isInteger(hp) ||
|
|
!Number.isInteger(cost)
|
|
)
|
|
return res.status(400).send({ error: "Invalid parameters" });
|
|
|
|
if (packs && !Array.isArray(packs))
|
|
return res.status(400).send({ error: "Invalid parameters" });
|
|
|
|
var data = {
|
|
tid: tid,
|
|
type: type,
|
|
team: team,
|
|
rarity: rarity,
|
|
mana: mana,
|
|
attack: attack,
|
|
hp: hp,
|
|
cost: cost,
|
|
packs: packs,
|
|
};
|
|
|
|
//Update or create
|
|
var card = await CardModel.get(tid);
|
|
if (card) card = await CardModel.update(card, data);
|
|
else card = await CardModel.create(data);
|
|
|
|
if (!card) return res.status(500).send({ error: "Error updating card" });
|
|
|
|
return res.status(200).send(data);
|
|
};
|
|
|
|
exports.AddCardList = async (req, res) => {
|
|
var cards = req.body.cards;
|
|
if (!Array.isArray(cards))
|
|
return res.status(400).send({ error: "Invalid parameters" });
|
|
|
|
var ocards = [];
|
|
for (var i = 0; i < cards.length; i++) {
|
|
var card = cards[i];
|
|
if (card && card.tid && card.type && card.team) {
|
|
var data = {
|
|
tid: card.tid,
|
|
type: card.type,
|
|
team: card.team,
|
|
rarity: card.rarity || "",
|
|
mana: card.mana || 0,
|
|
attack: card.attack || 0,
|
|
hp: card.hp || 0,
|
|
cost: card.cost || 0,
|
|
packs: card.packs || [],
|
|
};
|
|
|
|
var ccard = await CardModel.get(card.tid);
|
|
if (ccard) ccard = await CardModel.update(ccard, data);
|
|
else ccard = await CardModel.create(data);
|
|
|
|
ocards.push(ccard);
|
|
}
|
|
}
|
|
|
|
return res.status(200).send(ocards);
|
|
};
|
|
|
|
exports.DeleteCard = async (req, res) => {
|
|
CardModel.remove(req.params.tid);
|
|
return res.status(204).send({});
|
|
};
|
|
|
|
exports.DeleteAll = async (req, res) => {
|
|
CardModel.removeAll();
|
|
return res.status(204).send({});
|
|
};
|
|
|
|
exports.GetCard = async (req, res) => {
|
|
var tid = req.params.tid;
|
|
|
|
if (!tid) return res.status(400).send({ error: "Invalid parameters" });
|
|
|
|
var card = await CardModel.get(tid);
|
|
if (!card) return res.status(404).send({ error: "Card not found: " + tid });
|
|
|
|
return res.status(200).send(card.toObj());
|
|
};
|
|
|
|
exports.GetAll = async (req, res) => {
|
|
var cards = await CardModel.getAll();
|
|
|
|
for (var i = 0; i < cards.length; i++) {
|
|
cards[i] = cards[i].toObj();
|
|
}
|
|
|
|
return res.status(200).send(cards);
|
|
};
|