init
This commit is contained in:
111
cards/cards.model.js
Normal file
111
cards/cards.model.js
Normal file
@@ -0,0 +1,111 @@
|
||||
const mongoose = require('mongoose');
|
||||
const Schema = mongoose.Schema;
|
||||
|
||||
const cardsSchema = new Schema({
|
||||
|
||||
tid: { type: String, index: true, unique: true, default: "" },
|
||||
type: { type: String, default: "" },
|
||||
team: { type: String, default: "" },
|
||||
rarity: {type: String, default: ""},
|
||||
mana: {type: Number, default: 0},
|
||||
attack: {type: Number, default: 0},
|
||||
hp: {type: Number, default: 0},
|
||||
cost: {type: Number, default: 0},
|
||||
|
||||
packs: [{type: String}], //Card is available in those packs
|
||||
});
|
||||
|
||||
cardsSchema.methods.toObj = function() {
|
||||
var card = this.toObject();
|
||||
delete card.__v;
|
||||
delete card._id;
|
||||
return card;
|
||||
};
|
||||
|
||||
const Card = mongoose.model('Cards', cardsSchema);
|
||||
|
||||
exports.get = async(tid) => {
|
||||
try{
|
||||
var card = await Card.findOne({tid: tid});
|
||||
return card;
|
||||
}
|
||||
catch{
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
exports.getAll = async(filter) => {
|
||||
|
||||
try{
|
||||
filter = filter || {};
|
||||
var cards = await Card.find(filter);
|
||||
return cards || [];
|
||||
}
|
||||
catch{
|
||||
return [];
|
||||
}
|
||||
};
|
||||
|
||||
exports.getByPack = async(packId, filter) => {
|
||||
|
||||
try{
|
||||
filter = filter || {};
|
||||
if(packId)
|
||||
{
|
||||
filter.packs = {$in:[packId]};
|
||||
}
|
||||
var cards = await Card.find(filter);
|
||||
return cards || [];
|
||||
}
|
||||
catch{
|
||||
return [];
|
||||
}
|
||||
};
|
||||
|
||||
exports.create = async(data) => {
|
||||
try{
|
||||
var card = new Card(data);
|
||||
return await card.save();
|
||||
}
|
||||
catch{
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
exports.update = async(card, data) => {
|
||||
|
||||
try{
|
||||
if(!card) return null;
|
||||
|
||||
for (let i in data) {
|
||||
card[i] = data[i];
|
||||
card.markModified(i);
|
||||
}
|
||||
|
||||
var updated = await card.save();
|
||||
return updated;
|
||||
}
|
||||
catch{
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
exports.remove = async(tid) => {
|
||||
try{
|
||||
var result = await Card.deleteOne({tid: tid});
|
||||
return result && result.deletedCount > 0;
|
||||
}
|
||||
catch{
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
exports.removeAll = async() => {
|
||||
try{
|
||||
var result = await Card.deleteMany({});
|
||||
return result && result.deletedCount > 0;
|
||||
}
|
||||
catch{
|
||||
return false;
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user