76 lines
1.8 KiB
JavaScript
76 lines
1.8 KiB
JavaScript
const DeckModel = require('../decks/decks.model');
|
|
const Activity = require("../activity/activity.model");
|
|
const config = require('../config');
|
|
|
|
exports.AddDeck = async(req, res) =>
|
|
{
|
|
var tid = req.body.tid;
|
|
var title = req.body.title;
|
|
var hero = req.body.hero;
|
|
var cards = req.body.cards;
|
|
|
|
if(!tid || typeof tid !== "string")
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
|
|
if(!title || typeof title !== "string")
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
|
|
if(!hero || typeof hero !== "object")
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
|
|
if(cards && !Array.isArray(cards))
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
|
|
var deck_data = {
|
|
tid: tid,
|
|
title: title,
|
|
hero: hero,
|
|
cards: cards || [],
|
|
}
|
|
|
|
//Update or create
|
|
var deck = await DeckModel.get(tid);
|
|
if(deck)
|
|
deck = await DeckModel.update(deck, deck_data);
|
|
else
|
|
deck = await DeckModel.create(deck_data);
|
|
|
|
if(!deck)
|
|
res.status(500).send({error: "Error updating deck"});
|
|
|
|
return res.status(200).send(deck);
|
|
};
|
|
|
|
exports.DeleteDeck = async(req, res) => {
|
|
DeckModel.remove(req.params.tid);
|
|
return res.status(204).send({});
|
|
};
|
|
|
|
exports.DeleteAll = async(req, res) => {
|
|
DeckModel.removeAll();
|
|
return res.status(204).send({});
|
|
};
|
|
|
|
exports.GetDeck = async(req, res) =>
|
|
{
|
|
var deckId = req.params.tid;
|
|
|
|
if(!deckId)
|
|
return res.status(400).send({error: "Invalid parameters"});
|
|
|
|
var deck = await DeckModel.get(deckId);
|
|
if(!deck)
|
|
return res.status(404).send({error: "Deck not found: " + deckId});
|
|
|
|
return res.status(200).send(deck.toObj());
|
|
};
|
|
|
|
|
|
exports.GetAll = async(req, res) =>
|
|
{
|
|
var decks = await DeckModel.getAll();
|
|
return res.status(200).send(decks);
|
|
};
|
|
|
|
|