更新
This commit is contained in:
@@ -1,9 +1,8 @@
|
|||||||
const CardModel = require('../cards/cards.model');
|
const CardModel = require("../cards/cards.model");
|
||||||
const Activity = require("../activity/activity.model");
|
const Activity = require("../activity/activity.model");
|
||||||
const config = require('../config');
|
const config = require("../config");
|
||||||
|
|
||||||
exports.AddCard = async(req, res) =>
|
exports.AddCard = async (req, res) => {
|
||||||
{
|
|
||||||
var tid = req.body.tid;
|
var tid = req.body.tid;
|
||||||
var type = req.body.type;
|
var type = req.body.type;
|
||||||
var team = req.body.team;
|
var team = req.body.team;
|
||||||
@@ -26,7 +25,12 @@ exports.AddCard = async(req, res) =>
|
|||||||
if (!rarity || typeof rarity !== "string")
|
if (!rarity || typeof rarity !== "string")
|
||||||
return res.status(400).send({ error: "Invalid parameters" });
|
return res.status(400).send({ error: "Invalid parameters" });
|
||||||
|
|
||||||
if(!Number.isInteger(mana) || !Number.isInteger(attack) || !Number.isInteger(hp) || !Number.isInteger(cost))
|
if (
|
||||||
|
!Number.isInteger(mana) ||
|
||||||
|
!Number.isInteger(attack) ||
|
||||||
|
!Number.isInteger(hp) ||
|
||||||
|
!Number.isInteger(cost)
|
||||||
|
)
|
||||||
return res.status(400).send({ error: "Invalid parameters" });
|
return res.status(400).send({ error: "Invalid parameters" });
|
||||||
|
|
||||||
if (packs && !Array.isArray(packs))
|
if (packs && !Array.isArray(packs))
|
||||||
@@ -42,33 +46,27 @@ exports.AddCard = async(req, res) =>
|
|||||||
hp: hp,
|
hp: hp,
|
||||||
cost: cost,
|
cost: cost,
|
||||||
packs: packs,
|
packs: packs,
|
||||||
}
|
};
|
||||||
|
|
||||||
//Update or create
|
//Update or create
|
||||||
var card = await CardModel.get(tid);
|
var card = await CardModel.get(tid);
|
||||||
if(card)
|
if (card) card = await CardModel.update(card, data);
|
||||||
card = await CardModel.update(card, data);
|
else card = await CardModel.create(data);
|
||||||
else
|
|
||||||
card = await CardModel.create(data);
|
|
||||||
|
|
||||||
if(!card)
|
if (!card) return res.status(500).send({ error: "Error updating card" });
|
||||||
return res.status(500).send({error: "Error updating card"});
|
|
||||||
|
|
||||||
return res.status(200).send(data);
|
return res.status(200).send(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.AddCardList = async(req, res) =>
|
exports.AddCardList = async (req, res) => {
|
||||||
{
|
|
||||||
var cards = req.body.cards;
|
var cards = req.body.cards;
|
||||||
if (!Array.isArray(cards))
|
if (!Array.isArray(cards))
|
||||||
return res.status(400).send({ error: "Invalid parameters" });
|
return res.status(400).send({ error: "Invalid parameters" });
|
||||||
|
|
||||||
var ocards = [];
|
var ocards = [];
|
||||||
for(var i=0; i<cards.length; i++)
|
for (var i = 0; i < cards.length; i++) {
|
||||||
{
|
|
||||||
var card = cards[i];
|
var card = cards[i];
|
||||||
if(card && card.tid && card.type && card.team)
|
if (card && card.tid && card.type && card.team) {
|
||||||
{
|
|
||||||
var data = {
|
var data = {
|
||||||
tid: card.tid,
|
tid: card.tid,
|
||||||
type: card.type,
|
type: card.type,
|
||||||
@@ -79,13 +77,11 @@ exports.AddCardList = async(req, res) =>
|
|||||||
hp: card.hp || 0,
|
hp: card.hp || 0,
|
||||||
cost: card.cost || 0,
|
cost: card.cost || 0,
|
||||||
packs: card.packs || [],
|
packs: card.packs || [],
|
||||||
}
|
};
|
||||||
|
|
||||||
var ccard = await CardModel.get(card.tid);
|
var ccard = await CardModel.get(card.tid);
|
||||||
if(ccard)
|
if (ccard) ccard = await CardModel.update(ccard, data);
|
||||||
ccard = await CardModel.update(ccard, data);
|
else ccard = await CardModel.create(data);
|
||||||
else
|
|
||||||
ccard = await CardModel.create(data);
|
|
||||||
|
|
||||||
ocards.push(ccard);
|
ocards.push(ccard);
|
||||||
}
|
}
|
||||||
@@ -94,34 +90,28 @@ exports.AddCardList = async(req, res) =>
|
|||||||
return res.status(200).send(ocards);
|
return res.status(200).send(ocards);
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.DeleteCard = async(req, res) =>
|
exports.DeleteCard = async (req, res) => {
|
||||||
{
|
|
||||||
CardModel.remove(req.params.tid);
|
CardModel.remove(req.params.tid);
|
||||||
return res.status(204).send({});
|
return res.status(204).send({});
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.DeleteAll = async(req, res) =>
|
exports.DeleteAll = async (req, res) => {
|
||||||
{
|
|
||||||
CardModel.removeAll();
|
CardModel.removeAll();
|
||||||
return res.status(204).send({});
|
return res.status(204).send({});
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.GetCard = async(req, res) =>
|
exports.GetCard = async (req, res) => {
|
||||||
{
|
|
||||||
var tid = req.params.tid;
|
var tid = req.params.tid;
|
||||||
|
|
||||||
if(!tid)
|
if (!tid) return res.status(400).send({ error: "Invalid parameters" });
|
||||||
return res.status(400).send({error: "Invalid parameters"});
|
|
||||||
|
|
||||||
var card = await CardModel.get(tid);
|
var card = await CardModel.get(tid);
|
||||||
if(!card)
|
if (!card) return res.status(404).send({ error: "Card not found: " + tid });
|
||||||
return res.status(404).send({error: "Card not found: " + tid});
|
|
||||||
|
|
||||||
return res.status(200).send(card.toObj());
|
return res.status(200).send(card.toObj());
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.GetAll = async(req, res) =>
|
exports.GetAll = async (req, res) => {
|
||||||
{
|
|
||||||
var cards = await CardModel.getAll();
|
var cards = await CardModel.getAll();
|
||||||
|
|
||||||
for (var i = 0; i < cards.length; i++) {
|
for (var i = 0; i < cards.length; i++) {
|
||||||
@@ -130,5 +120,3 @@ exports.GetAll = async(req, res) =>
|
|||||||
|
|
||||||
return res.status(200).send(cards);
|
return res.status(200).send(cards);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,31 +1,25 @@
|
|||||||
const config = require('../config.js');
|
const config = require("../config.js");
|
||||||
const crypto = require('crypto');
|
const crypto = require("crypto");
|
||||||
const CardModel = require('../cards/cards.model');
|
const CardModel = require("../cards/cards.model");
|
||||||
|
|
||||||
const CardTool = {};
|
const CardTool = {};
|
||||||
|
|
||||||
CardTool.getPackCards = async(pack) =>
|
CardTool.getPackCards = async (pack) => {
|
||||||
{
|
|
||||||
var pack_cards = await CardModel.getByPack(pack.tid);
|
var pack_cards = await CardModel.getByPack(pack.tid);
|
||||||
|
console.log("pack_cards", pack_cards);
|
||||||
var cards = [];
|
var cards = [];
|
||||||
for(var i=0; i<pack.cards; i++)
|
for (var i = 0; i < pack.cards; i++) {
|
||||||
{
|
if (pack.random) {
|
||||||
if(pack.random)
|
|
||||||
{
|
|
||||||
//Randomized set
|
//Randomized set
|
||||||
var rarity_tid = CardTool.getRandomRarity(pack, i == 0);
|
var rarity_tid = CardTool.getRandomRarity(pack, i == 0);
|
||||||
var variant_tid = CardTool.getRandomVariant(pack);
|
var variant_tid = CardTool.getRandomVariant(pack);
|
||||||
var rarity_cards = CardTool.getCardArray(pack_cards, rarity_tid);
|
var rarity_cards = CardTool.getCardArray(pack_cards, rarity_tid);
|
||||||
var card = CardTool.getRandomCard(rarity_cards);
|
var card = CardTool.getRandomCard(rarity_cards);
|
||||||
if(card)
|
if (card) {
|
||||||
{
|
|
||||||
var cardQ = { tid: card.tid, variant: variant_tid, quantity: 1 };
|
var cardQ = { tid: card.tid, variant: variant_tid, quantity: 1 };
|
||||||
cards.push(cardQ);
|
cards.push(cardQ);
|
||||||
}
|
}
|
||||||
}
|
} else if (i < pack_cards.length) {
|
||||||
else if(i < pack_cards.length)
|
|
||||||
{
|
|
||||||
//Fixed set
|
//Fixed set
|
||||||
var card = pack_cards[i];
|
var card = pack_cards[i];
|
||||||
var variant_tid = CardTool.getRandomVariant(pack);
|
var variant_tid = CardTool.getRandomVariant(pack);
|
||||||
@@ -36,11 +30,9 @@ CardTool.getPackCards = async(pack) =>
|
|||||||
return cards;
|
return cards;
|
||||||
};
|
};
|
||||||
|
|
||||||
CardTool.getRandomRarity = (pack, is_first) =>
|
CardTool.getRandomRarity = (pack, is_first) => {
|
||||||
{
|
|
||||||
var rarities = is_first ? pack.rarities_1st : pack.rarities;
|
var rarities = is_first ? pack.rarities_1st : pack.rarities;
|
||||||
if(!rarities || rarities.length == 0)
|
if (!rarities || rarities.length == 0) return ""; //Any rarity
|
||||||
return ""; //Any rarity
|
|
||||||
|
|
||||||
var total = 0;
|
var total = 0;
|
||||||
for (var rarity of rarities) {
|
for (var rarity of rarities) {
|
||||||
@@ -49,11 +41,9 @@ CardTool.getRandomRarity = (pack, is_first) =>
|
|||||||
|
|
||||||
var rvalue = Math.floor(Math.random() * total);
|
var rvalue = Math.floor(Math.random() * total);
|
||||||
|
|
||||||
for(var i=0; i<rarities.length; i++)
|
for (var i = 0; i < rarities.length; i++) {
|
||||||
{
|
|
||||||
var rarity = rarities[i];
|
var rarity = rarities[i];
|
||||||
if(rvalue < rarity.value)
|
if (rvalue < rarity.value) {
|
||||||
{
|
|
||||||
return rarity.tid;
|
return rarity.tid;
|
||||||
}
|
}
|
||||||
rvalue -= rarity.value;
|
rvalue -= rarity.value;
|
||||||
@@ -61,11 +51,9 @@ CardTool.getRandomRarity = (pack, is_first) =>
|
|||||||
return "";
|
return "";
|
||||||
};
|
};
|
||||||
|
|
||||||
CardTool.getRandomVariant = (pack) =>
|
CardTool.getRandomVariant = (pack) => {
|
||||||
{
|
|
||||||
var variants = pack.variants;
|
var variants = pack.variants;
|
||||||
if(!variants || variants.length == 0)
|
if (!variants || variants.length == 0) return "";
|
||||||
return "";
|
|
||||||
|
|
||||||
var total = 0;
|
var total = 0;
|
||||||
for (var variant of variants) {
|
for (var variant of variants) {
|
||||||
@@ -74,11 +62,9 @@ CardTool.getRandomVariant = (pack) =>
|
|||||||
|
|
||||||
var rvalue = Math.floor(Math.random() * total);
|
var rvalue = Math.floor(Math.random() * total);
|
||||||
|
|
||||||
for(var i=0; i<variants.length; i++)
|
for (var i = 0; i < variants.length; i++) {
|
||||||
{
|
|
||||||
var variant = variants[i];
|
var variant = variants[i];
|
||||||
if(rvalue < variant.value)
|
if (rvalue < variant.value) {
|
||||||
{
|
|
||||||
return variant.tid;
|
return variant.tid;
|
||||||
}
|
}
|
||||||
rvalue -= variant.value;
|
rvalue -= variant.value;
|
||||||
@@ -86,22 +72,17 @@ CardTool.getRandomVariant = (pack) =>
|
|||||||
return "";
|
return "";
|
||||||
};
|
};
|
||||||
|
|
||||||
CardTool.getCardArray = (all_cards, rarity) =>
|
CardTool.getCardArray = (all_cards, rarity) => {
|
||||||
{
|
|
||||||
var valid_cards = [];
|
var valid_cards = [];
|
||||||
for(var i=0; i<all_cards.length; i++)
|
for (var i = 0; i < all_cards.length; i++) {
|
||||||
{
|
|
||||||
var card = all_cards[i];
|
var card = all_cards[i];
|
||||||
if(!rarity || card.rarity == rarity)
|
if (!rarity || card.rarity == rarity) valid_cards.push(card);
|
||||||
valid_cards.push(card);
|
|
||||||
}
|
}
|
||||||
return valid_cards;
|
return valid_cards;
|
||||||
}
|
};
|
||||||
|
|
||||||
CardTool.getRandomCard = (all_cards, suffix) =>
|
CardTool.getRandomCard = (all_cards, suffix) => {
|
||||||
{
|
if (all_cards.length > 0) {
|
||||||
if(all_cards.length > 0)
|
|
||||||
{
|
|
||||||
var card = all_cards[Math.floor(Math.random() * all_cards.length)];
|
var card = all_cards[Math.floor(Math.random() * all_cards.length)];
|
||||||
return card;
|
return card;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
version: "0.0.5",
|
version: "0.0.9",
|
||||||
description: "0.0.1",
|
description: "更新日志:0.0.9",
|
||||||
md5: "36b441e48050bb919b5f0afcae3f076d",
|
md5: "4be73c5ccf5bf5e956d172f7fd29d336",
|
||||||
|
|
||||||
port: 8080,
|
port: 8080,
|
||||||
port_https: 443,
|
port_https: 443,
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ GET /api/tasks
|
|||||||
"value1": 1,
|
"value1": 1,
|
||||||
"value2": "",
|
"value2": "",
|
||||||
"value3": "",
|
"value3": "",
|
||||||
"rewardTypes": [0],
|
"rewardTypes": [0 , 1],
|
||||||
"rewardNums": [100],
|
"rewardNums": [100 , 6],
|
||||||
"isDailyTask": true,
|
"isDailyTask": true,
|
||||||
"durationHours": 24
|
"durationHours": 24
|
||||||
},
|
},
|
||||||
@@ -109,6 +109,7 @@ POST /api/tasks/{userId}
|
|||||||
| 值 | 名称 | 描述 |
|
| 值 | 名称 | 描述 |
|
||||||
|---|------|------|
|
|---|------|------|
|
||||||
| 0 | Coins | 金币 |
|
| 0 | Coins | 金币 |
|
||||||
|
| 1 | Crystal | 钻石 |
|
||||||
|
|
||||||
### 任务状态 (TaskStatus)
|
### 任务状态 (TaskStatus)
|
||||||
| 值 | 名称 | 描述 |
|
| 值 | 名称 | 描述 |
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
"value1": 1,
|
"value1": 1,
|
||||||
"value2": "",
|
"value2": "",
|
||||||
"value3": "",
|
"value3": "",
|
||||||
"rewardTypes": [0],
|
"rewardTypes": [0 , 1],
|
||||||
"rewardNums": [100],
|
"rewardNums": [100 , 6],
|
||||||
"isDailyTask": true,
|
"isDailyTask": true,
|
||||||
"durationHours": 24
|
"durationHours": 24
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -10,13 +10,13 @@ const playerTaskSchema = new Schema({
|
|||||||
assignedTime: { type: Date, required: true },
|
assignedTime: { type: Date, required: true },
|
||||||
expireTime: { type: Date, required: true },
|
expireTime: { type: Date, required: true },
|
||||||
status: { type: Number, required: true, default: 0 }, // 0: Active, 1: Completed, 2: Expired, 3: Claimed
|
status: { type: Number, required: true, default: 0 }, // 0: Active, 1: Completed, 2: Expired, 3: Claimed
|
||||||
progress: { type: Number, required: true, default: 0 }
|
progress: { type: Number, required: true, default: 0 },
|
||||||
});
|
});
|
||||||
|
|
||||||
const playerTaskDataSchema = new Schema({
|
const playerTaskDataSchema = new Schema({
|
||||||
userId: { type: String, required: true, index: true },
|
userId: { type: String, required: true, index: true },
|
||||||
tasks: [playerTaskSchema],
|
tasks: [playerTaskSchema],
|
||||||
lastDailyTaskAssigned: { type: Date, default: null }
|
lastDailyTaskAssigned: { type: Date, default: null },
|
||||||
});
|
});
|
||||||
|
|
||||||
playerTaskDataSchema.methods.toObj = function () {
|
playerTaskDataSchema.methods.toObj = function () {
|
||||||
@@ -39,7 +39,7 @@ exports.getAllTaskConfigs = async () => {
|
|||||||
|
|
||||||
// Get task configuration by ID
|
// Get task configuration by ID
|
||||||
exports.getTaskConfigById = async (taskId) => {
|
exports.getTaskConfigById = async (taskId) => {
|
||||||
return taskConfigurations.find(task => task.id === taskId);
|
return taskConfigurations.find((task) => task.id === taskId);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Get player tasks
|
// Get player tasks
|
||||||
@@ -50,7 +50,7 @@ exports.getPlayerTasks = async (userId) => {
|
|||||||
playerTaskData = new PlayerTaskData({
|
playerTaskData = new PlayerTaskData({
|
||||||
userId: userId,
|
userId: userId,
|
||||||
tasks: [],
|
tasks: [],
|
||||||
lastDailyTaskAssigned: null
|
lastDailyTaskAssigned: null,
|
||||||
});
|
});
|
||||||
await playerTaskData.save();
|
await playerTaskData.save();
|
||||||
}
|
}
|
||||||
@@ -80,11 +80,13 @@ exports.savePlayerTasks = async (playerTaskData) => {
|
|||||||
exports.initializeTaskConfig = (configPath) => {
|
exports.initializeTaskConfig = (configPath) => {
|
||||||
try {
|
try {
|
||||||
if (fs.existsSync(configPath)) {
|
if (fs.existsSync(configPath)) {
|
||||||
const configFile = fs.readFileSync(configPath, 'utf8');
|
const configFile = fs.readFileSync(configPath, "utf8");
|
||||||
taskConfigurations = JSON.parse(configFile);
|
taskConfigurations = JSON.parse(configFile);
|
||||||
console.log(`Loaded ${taskConfigurations.length} task configurations`);
|
console.log(`Loaded ${taskConfigurations.length} task configurations`);
|
||||||
} else {
|
} else {
|
||||||
console.log("Task configuration file not found, using empty configuration");
|
console.log(
|
||||||
|
"Task configuration file not found, using empty configuration"
|
||||||
|
);
|
||||||
taskConfigurations = [];
|
taskConfigurations = [];
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
const UserModel = require("./users.model");
|
const UserModel = require("./users.model");
|
||||||
const PackModel = require("../packs/packs.model");
|
const PackModel = require("../packs/packs.model");
|
||||||
const CardModel = require("../cards/cards.model");
|
const CardModel = require("../cards/cards.model");
|
||||||
const VariantModel = require('../variants/variants.model');
|
const VariantModel = require("../variants/variants.model");
|
||||||
const UserTool = require("./users.tool");
|
const UserTool = require("./users.tool");
|
||||||
const CardTool = require("../cards/cards.tool");
|
const CardTool = require("../cards/cards.tool");
|
||||||
const Activity = require("../activity/activity.model");
|
const Activity = require("../activity/activity.model");
|
||||||
const config = require('../config');
|
const config = require("../config");
|
||||||
|
|
||||||
exports.UpdateDeck = async (req, res) => {
|
exports.UpdateDeck = async (req, res) => {
|
||||||
|
|
||||||
if (!req.params.deckId)
|
if (!req.params.deckId)
|
||||||
return res.status(400).send({ error: "Invalid parameters" });
|
return res.status(400).send({ error: "Invalid parameters" });
|
||||||
|
|
||||||
@@ -18,6 +17,7 @@ exports.UpdateDeck = async(req, res) => {
|
|||||||
var ndeck = {
|
var ndeck = {
|
||||||
tid: req.params.deckId,
|
tid: req.params.deckId,
|
||||||
title: req.body.title || "Deck",
|
title: req.body.title || "Deck",
|
||||||
|
cover: req.body.cover || "",
|
||||||
hero: req.body.hero || {},
|
hero: req.body.hero || {},
|
||||||
cards: req.body.cards || [],
|
cards: req.body.cards || [],
|
||||||
};
|
};
|
||||||
@@ -31,8 +31,7 @@ exports.UpdateDeck = async(req, res) => {
|
|||||||
var index = 0;
|
var index = 0;
|
||||||
for (var i = 0; i < decks.length; i++) {
|
for (var i = 0; i < decks.length; i++) {
|
||||||
var deck = decks[i];
|
var deck = decks[i];
|
||||||
if(deck.tid == deckId)
|
if (deck.tid == deckId) {
|
||||||
{
|
|
||||||
decks[i] = ndeck;
|
decks[i] = ndeck;
|
||||||
found = true;
|
found = true;
|
||||||
index = i;
|
index = i;
|
||||||
@@ -40,22 +39,20 @@ exports.UpdateDeck = async(req, res) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Add new
|
//Add new
|
||||||
if(!found && ndeck.cards.length > 0)
|
if (!found && ndeck.cards.length > 0) decks.push(ndeck);
|
||||||
decks.push(ndeck);
|
|
||||||
|
|
||||||
//Delete deck
|
//Delete deck
|
||||||
if(found && ndeck.cards.length == 0)
|
if (found && ndeck.cards.length == 0) decks.splice(index, 1);
|
||||||
decks.splice(index, 1);
|
|
||||||
|
|
||||||
var userData = { decks: decks };
|
var userData = { decks: decks };
|
||||||
var upUser = await UserModel.update(user, userData);
|
var upUser = await UserModel.update(user, userData);
|
||||||
if (!upUser) return res.status(500).send({ error: "Error updating user: " + userId });
|
if (!upUser)
|
||||||
|
return res.status(500).send({ error: "Error updating user: " + userId });
|
||||||
|
|
||||||
return res.status(200).send(upUser.decks);
|
return res.status(200).send(upUser.decks);
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.DeleteDeck = async (req, res) => {
|
exports.DeleteDeck = async (req, res) => {
|
||||||
|
|
||||||
if (!req.params.deckId)
|
if (!req.params.deckId)
|
||||||
return res.status(400).send({ error: "Invalid parameters" });
|
return res.status(400).send({ error: "Invalid parameters" });
|
||||||
|
|
||||||
@@ -70,25 +67,23 @@ exports.DeleteDeck = async(req, res) => {
|
|||||||
var index = -1;
|
var index = -1;
|
||||||
for (var i = 0; i < decks.length; i++) {
|
for (var i = 0; i < decks.length; i++) {
|
||||||
var deck = decks[i];
|
var deck = decks[i];
|
||||||
if(deck.tid == deckId)
|
if (deck.tid == deckId) {
|
||||||
{
|
|
||||||
index = i;
|
index = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(index >= 0)
|
if (index >= 0) decks.splice(index, 1);
|
||||||
decks.splice(index, 1);
|
|
||||||
|
|
||||||
var userData = { decks: decks };
|
var userData = { decks: decks };
|
||||||
var upUser = await UserModel.update(user, userData);
|
var upUser = await UserModel.update(user, userData);
|
||||||
if (!upUser) return res.status(500).send({ error: "Error updating user: " + userId });
|
if (!upUser)
|
||||||
|
return res.status(500).send({ error: "Error updating user: " + userId });
|
||||||
|
|
||||||
return res.status(200).send(upUser.decks);
|
return res.status(200).send(upUser.decks);
|
||||||
};
|
};
|
||||||
|
|
||||||
// 购买卡片
|
// 购买卡片
|
||||||
exports.BuyCard = async (req, res) => {
|
exports.BuyCard = async (req, res) => {
|
||||||
|
|
||||||
const userId = req.jwt.userId;
|
const userId = req.jwt.userId;
|
||||||
const cardId = req.body.card;
|
const cardId = req.body.card;
|
||||||
const variantId = req.body.variant;
|
const variantId = req.body.variant;
|
||||||
@@ -105,12 +100,10 @@ exports.BuyCard = async (req, res) => {
|
|||||||
|
|
||||||
//Get the user add update the array
|
//Get the user add update the array
|
||||||
var user = await UserModel.getById(userId);
|
var user = await UserModel.getById(userId);
|
||||||
if (!user)
|
if (!user) return res.status(404).send({ error: "Cant find user " + userId });
|
||||||
return res.status(404).send({ error: "Cant find user " + userId });
|
|
||||||
|
|
||||||
var card = await CardModel.get(cardId);
|
var card = await CardModel.get(cardId);
|
||||||
if (!card)
|
if (!card) return res.status(404).send({ error: "Cant find card " + cardId });
|
||||||
return res.status(404).send({ error: "Cant find card " + cardId });
|
|
||||||
|
|
||||||
if (card.cost <= 0)
|
if (card.cost <= 0)
|
||||||
return res.status(400).send({ error: "Can't be purchased" });
|
return res.status(400).send({ error: "Can't be purchased" });
|
||||||
@@ -123,26 +116,30 @@ exports.BuyCard = async (req, res) => {
|
|||||||
|
|
||||||
user.cardfragments -= cost;
|
user.cardfragments -= cost;
|
||||||
|
|
||||||
var valid = await UserTool.addCards(user, [{tid: cardId, variant: variantId, quantity: quantity}]);
|
var valid = await UserTool.addCards(user, [
|
||||||
if (!valid)
|
{ tid: cardId, variant: variantId, quantity: quantity },
|
||||||
return res.status(500).send({ error: "Error when adding cards" });
|
]);
|
||||||
|
if (!valid) return res.status(500).send({ error: "Error when adding cards" });
|
||||||
|
|
||||||
//Update the user array
|
//Update the user array
|
||||||
var updatedUser = await UserModel.save(user, ["cardfragments", "cards"]);
|
var updatedUser = await UserModel.save(user, ["cardfragments", "cards"]);
|
||||||
if (!updatedUser) return res.status(500).send({ error: "Error updating user: " + userId });
|
if (!updatedUser)
|
||||||
|
return res.status(500).send({ error: "Error updating user: " + userId });
|
||||||
|
|
||||||
// Activity Log -------------
|
// Activity Log -------------
|
||||||
const activityData = { card: cardId, variant: variantId, quantity: quantity };
|
const activityData = { card: cardId, variant: variantId, quantity: quantity };
|
||||||
const act = await Activity.LogActivity("user_buy_card", req.jwt.username, activityData);
|
const act = await Activity.LogActivity(
|
||||||
|
"user_buy_card",
|
||||||
|
req.jwt.username,
|
||||||
|
activityData
|
||||||
|
);
|
||||||
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
||||||
|
|
||||||
// -------------
|
// -------------
|
||||||
return res.status(200).send();
|
return res.status(200).send();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.SellCard = async (req, res) => {
|
exports.SellCard = async (req, res) => {
|
||||||
|
|
||||||
const userId = req.jwt.userId;
|
const userId = req.jwt.userId;
|
||||||
const cardId = req.body.card;
|
const cardId = req.body.card;
|
||||||
const variantId = req.body.variant;
|
const variantId = req.body.variant;
|
||||||
@@ -159,15 +156,12 @@ exports.SellCard = async (req, res) => {
|
|||||||
|
|
||||||
//Get the user add update the array
|
//Get the user add update the array
|
||||||
var user = await UserModel.getById(userId);
|
var user = await UserModel.getById(userId);
|
||||||
if (!user)
|
if (!user) return res.status(404).send({ error: "Cant find user " + userId });
|
||||||
return res.status(404).send({ error: "Cant find user " + userId });
|
|
||||||
|
|
||||||
var card = await CardModel.get(cardId);
|
var card = await CardModel.get(cardId);
|
||||||
if (!card)
|
if (!card) return res.status(404).send({ error: "Cant find card " + cardId });
|
||||||
return res.status(404).send({ error: "Cant find card " + cardId });
|
|
||||||
|
|
||||||
if(card.cost <= 0)
|
if (card.cost <= 0) return res.status(400).send({ error: "Can't be sold" });
|
||||||
return res.status(400).send({ error: "Can't be sold" });
|
|
||||||
|
|
||||||
var variant = await VariantModel.get(variantId);
|
var variant = await VariantModel.get(variantId);
|
||||||
|
|
||||||
@@ -178,17 +172,24 @@ exports.SellCard = async (req, res) => {
|
|||||||
var cost = quantity * Math.round(card.cost * factor * config.sell_ratio);
|
var cost = quantity * Math.round(card.cost * factor * config.sell_ratio);
|
||||||
user.cardfragments += cost;
|
user.cardfragments += cost;
|
||||||
|
|
||||||
var valid = await UserTool.addCards(user, [{tid: cardId, variant: variantId, quantity: -quantity}]);
|
var valid = await UserTool.addCards(user, [
|
||||||
|
{ tid: cardId, variant: variantId, quantity: -quantity },
|
||||||
|
]);
|
||||||
if (!valid)
|
if (!valid)
|
||||||
return res.status(500).send({ error: "Error when removing cards" });
|
return res.status(500).send({ error: "Error when removing cards" });
|
||||||
|
|
||||||
//Update the user array
|
//Update the user array
|
||||||
var updatedUser = await UserModel.save(user, ["cardfragments", "cards"]);
|
var updatedUser = await UserModel.save(user, ["cardfragments", "cards"]);
|
||||||
if (!updatedUser) return res.status(500).send({ error: "Error updating user: " + userId });
|
if (!updatedUser)
|
||||||
|
return res.status(500).send({ error: "Error updating user: " + userId });
|
||||||
|
|
||||||
// Activity Log -------------
|
// Activity Log -------------
|
||||||
const activityData = { card: cardId, variant: variantId, quantity: quantity };
|
const activityData = { card: cardId, variant: variantId, quantity: quantity };
|
||||||
const act = await Activity.LogActivity("user_sell_card", req.jwt.username, activityData);
|
const act = await Activity.LogActivity(
|
||||||
|
"user_sell_card",
|
||||||
|
req.jwt.username,
|
||||||
|
activityData
|
||||||
|
);
|
||||||
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
||||||
|
|
||||||
// -------------
|
// -------------
|
||||||
@@ -196,7 +197,6 @@ exports.SellCard = async (req, res) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
exports.SellDuplicateCards = async (req, res) => {
|
exports.SellDuplicateCards = async (req, res) => {
|
||||||
|
|
||||||
const userId = req.jwt.userId;
|
const userId = req.jwt.userId;
|
||||||
const rarityId = req.body.rarity || ""; //If not set, will sell cards of all rarities
|
const rarityId = req.body.rarity || ""; //If not set, will sell cards of all rarities
|
||||||
const variantId = req.body.variant || ""; //If not set, will sell cards of all variants
|
const variantId = req.body.variant || ""; //If not set, will sell cards of all variants
|
||||||
@@ -213,34 +213,33 @@ exports.SellDuplicateCards = async (req, res) => {
|
|||||||
|
|
||||||
//Get the user add update the array
|
//Get the user add update the array
|
||||||
var user = await UserModel.getById(userId);
|
var user = await UserModel.getById(userId);
|
||||||
if (!user)
|
if (!user) return res.status(404).send({ error: "Cant find user " + userId });
|
||||||
return res.status(404).send({ error: "Cant find user " + userId });
|
|
||||||
|
|
||||||
var all_variants = await VariantModel.getAll();
|
var all_variants = await VariantModel.getAll();
|
||||||
if (!all_variants)
|
if (!all_variants)
|
||||||
return res.status(404).send({ error: "Cant find variants" });
|
return res.status(404).send({ error: "Cant find variants" });
|
||||||
|
|
||||||
var all_cards = await CardModel.getAll();
|
var all_cards = await CardModel.getAll();
|
||||||
if (!all_cards)
|
if (!all_cards) return res.status(404).send({ error: "Cant find cards" });
|
||||||
return res.status(404).send({ error: "Cant find cards" });
|
|
||||||
|
|
||||||
var cards_to_sell = [];
|
var cards_to_sell = [];
|
||||||
var cardfragments = 0;
|
var cardfragments = 0;
|
||||||
for(var i=0; i<user.cards.length; i++)
|
for (var i = 0; i < user.cards.length; i++) {
|
||||||
{
|
|
||||||
var card = user.cards[i];
|
var card = user.cards[i];
|
||||||
var card_data = UserTool.getData(all_cards, card.tid);
|
var card_data = UserTool.getData(all_cards, card.tid);
|
||||||
if(card_data && card_data.cost > 0 && card.quantity > keep)
|
if (card_data && card_data.cost > 0 && card.quantity > keep) {
|
||||||
{
|
if (!variantId || card.variant == variantId) {
|
||||||
if(!variantId || card.variant == variantId)
|
if (!rarityId || card_data.rarity == rarityId) {
|
||||||
{
|
|
||||||
if(!rarityId || card_data.rarity == rarityId)
|
|
||||||
{
|
|
||||||
var variant = UserTool.getData(all_variants, card.variant);
|
var variant = UserTool.getData(all_variants, card.variant);
|
||||||
var quantity = card.quantity - keep;
|
var quantity = card.quantity - keep;
|
||||||
var sell = {tid: card.tid, variant: card.variant, quantity: -quantity};
|
var sell = {
|
||||||
|
tid: card.tid,
|
||||||
|
variant: card.variant,
|
||||||
|
quantity: -quantity,
|
||||||
|
};
|
||||||
var factor = variant != null ? variant.cost_factor : 1;
|
var factor = variant != null ? variant.cost_factor : 1;
|
||||||
var cost = quantity * Math.round(card_data.cost * factor * config.sell_ratio);
|
var cost =
|
||||||
|
quantity * Math.round(card_data.cost * factor * config.sell_ratio);
|
||||||
cards_to_sell.push(sell);
|
cards_to_sell.push(sell);
|
||||||
cardfragments += cost;
|
cardfragments += cost;
|
||||||
}
|
}
|
||||||
@@ -248,8 +247,7 @@ exports.SellDuplicateCards = async (req, res) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cards_to_sell.length == 0)
|
if (cards_to_sell.length == 0) return res.status(200).send();
|
||||||
return res.status(200).send();
|
|
||||||
|
|
||||||
user.cardfragments += cardfragments;
|
user.cardfragments += cardfragments;
|
||||||
|
|
||||||
@@ -259,11 +257,16 @@ exports.SellDuplicateCards = async (req, res) => {
|
|||||||
|
|
||||||
//Update the user array
|
//Update the user array
|
||||||
var updatedUser = await UserModel.save(user, ["cardfragments", "cards"]);
|
var updatedUser = await UserModel.save(user, ["cardfragments", "cards"]);
|
||||||
if (!updatedUser) return res.status(500).send({ error: "Error updating user: " + userId });
|
if (!updatedUser)
|
||||||
|
return res.status(500).send({ error: "Error updating user: " + userId });
|
||||||
|
|
||||||
// Activity Log -------------
|
// Activity Log -------------
|
||||||
const activityData = { rarity: rarityId, variant: variantId, keep: keep };
|
const activityData = { rarity: rarityId, variant: variantId, keep: keep };
|
||||||
const act = await Activity.LogActivity("user_sell_cards_duplicate", req.jwt.username, activityData);
|
const act = await Activity.LogActivity(
|
||||||
|
"user_sell_cards_duplicate",
|
||||||
|
req.jwt.username,
|
||||||
|
activityData
|
||||||
|
);
|
||||||
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
||||||
|
|
||||||
// -------------
|
// -------------
|
||||||
@@ -272,7 +275,6 @@ exports.SellDuplicateCards = async (req, res) => {
|
|||||||
|
|
||||||
// 购买卡包 TODO 金币&钻石
|
// 购买卡包 TODO 金币&钻石
|
||||||
exports.BuyPack = async (req, res) => {
|
exports.BuyPack = async (req, res) => {
|
||||||
|
|
||||||
const userId = req.jwt.userId;
|
const userId = req.jwt.userId;
|
||||||
const packId = req.body.pack;
|
const packId = req.body.pack;
|
||||||
const quantity = req.body.quantity || 1;
|
const quantity = req.body.quantity || 1;
|
||||||
@@ -285,12 +287,10 @@ exports.BuyPack = async (req, res) => {
|
|||||||
|
|
||||||
//Get the user add update the array
|
//Get the user add update the array
|
||||||
var user = await UserModel.getById(userId);
|
var user = await UserModel.getById(userId);
|
||||||
if (!user)
|
if (!user) return res.status(404).send({ error: "Cant find user " + userId });
|
||||||
return res.status(404).send({ error: "Cant find user " + userId });
|
|
||||||
|
|
||||||
var pack = await PackModel.get(packId);
|
var pack = await PackModel.get(packId);
|
||||||
if (!pack)
|
if (!pack) return res.status(404).send({ error: "Cant find pack " + packId });
|
||||||
return res.status(404).send({ error: "Cant find pack " + packId });
|
|
||||||
|
|
||||||
if (pack.cost <= 0)
|
if (pack.cost <= 0)
|
||||||
return res.status(400).send({ error: "Can't be purchased" });
|
return res.status(400).send({ error: "Can't be purchased" });
|
||||||
@@ -301,26 +301,30 @@ exports.BuyPack = async (req, res) => {
|
|||||||
|
|
||||||
user.coins -= cost;
|
user.coins -= cost;
|
||||||
|
|
||||||
var valid = await UserTool.addPacks(user, [{tid: packId, quantity: quantity}]);
|
var valid = await UserTool.addPacks(user, [
|
||||||
if (!valid)
|
{ tid: packId, quantity: quantity },
|
||||||
return res.status(500).send({ error: "Error when adding packs" });
|
]);
|
||||||
|
if (!valid) return res.status(500).send({ error: "Error when adding packs" });
|
||||||
|
|
||||||
//Update the user array
|
//Update the user array
|
||||||
var updatedUser = await UserModel.save(user, ["coins", "packs"]);
|
var updatedUser = await UserModel.save(user, ["coins", "packs"]);
|
||||||
if (!updatedUser) return res.status(500).send({ error: "Error updating user: " + userId });
|
if (!updatedUser)
|
||||||
|
return res.status(500).send({ error: "Error updating user: " + userId });
|
||||||
|
|
||||||
// Activity Log -------------
|
// Activity Log -------------
|
||||||
const activityData = { pack: packId, quantity: quantity };
|
const activityData = { pack: packId, quantity: quantity };
|
||||||
const act = await Activity.LogActivity("user_buy_pack", req.jwt.username, activityData);
|
const act = await Activity.LogActivity(
|
||||||
|
"user_buy_pack",
|
||||||
|
req.jwt.username,
|
||||||
|
activityData
|
||||||
|
);
|
||||||
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
||||||
|
|
||||||
// -------------
|
// -------------
|
||||||
return res.status(200).send();
|
return res.status(200).send();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.SellPack = async (req, res) => {
|
exports.SellPack = async (req, res) => {
|
||||||
|
|
||||||
const userId = req.jwt.userId;
|
const userId = req.jwt.userId;
|
||||||
const packId = req.body.pack;
|
const packId = req.body.pack;
|
||||||
const quantity = req.body.quantity || 1;
|
const quantity = req.body.quantity || 1;
|
||||||
@@ -333,15 +337,12 @@ exports.SellPack = async (req, res) => {
|
|||||||
|
|
||||||
//Get the user add update the array
|
//Get the user add update the array
|
||||||
var user = await UserModel.getById(userId);
|
var user = await UserModel.getById(userId);
|
||||||
if (!user)
|
if (!user) return res.status(404).send({ error: "Cant find user " + userId });
|
||||||
return res.status(404).send({ error: "Cant find user " + userId });
|
|
||||||
|
|
||||||
var pack = await PackModel.get(packId);
|
var pack = await PackModel.get(packId);
|
||||||
if (!pack)
|
if (!pack) return res.status(404).send({ error: "Cant find pack " + packId });
|
||||||
return res.status(404).send({ error: "Cant find pack " + packId });
|
|
||||||
|
|
||||||
if(pack.cost <= 0)
|
if (pack.cost <= 0) return res.status(400).send({ error: "Can't be sold" });
|
||||||
return res.status(400).send({ error: "Can't be sold" });
|
|
||||||
|
|
||||||
if (!UserTool.hasPack(user, packId, quantity))
|
if (!UserTool.hasPack(user, packId, quantity))
|
||||||
return res.status(400).send({ error: "Not enough coins" });
|
return res.status(400).send({ error: "Not enough coins" });
|
||||||
@@ -349,26 +350,30 @@ exports.SellPack = async (req, res) => {
|
|||||||
var cost = quantity * Math.round(pack.cost * config.sell_ratio);
|
var cost = quantity * Math.round(pack.cost * config.sell_ratio);
|
||||||
user.coins += cost;
|
user.coins += cost;
|
||||||
|
|
||||||
var valid = await UserTool.addPacks(user, [{tid: packId, quantity: -quantity}]);
|
var valid = await UserTool.addPacks(user, [
|
||||||
if (!valid)
|
{ tid: packId, quantity: -quantity },
|
||||||
return res.status(500).send({ error: "Error when adding packs" });
|
]);
|
||||||
|
if (!valid) return res.status(500).send({ error: "Error when adding packs" });
|
||||||
|
|
||||||
//Update the user array
|
//Update the user array
|
||||||
var updatedUser = await UserModel.save(user, ["coins", "packs"]);
|
var updatedUser = await UserModel.save(user, ["coins", "packs"]);
|
||||||
if (!updatedUser) return res.status(500).send({ error: "Error updating user: " + userId });
|
if (!updatedUser)
|
||||||
|
return res.status(500).send({ error: "Error updating user: " + userId });
|
||||||
|
|
||||||
// Activity Log -------------
|
// Activity Log -------------
|
||||||
const activityData = { pack: packId, quantity: quantity };
|
const activityData = { pack: packId, quantity: quantity };
|
||||||
const act = await Activity.LogActivity("user_sell_pack", req.jwt.username, activityData);
|
const act = await Activity.LogActivity(
|
||||||
|
"user_sell_pack",
|
||||||
|
req.jwt.username,
|
||||||
|
activityData
|
||||||
|
);
|
||||||
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
||||||
|
|
||||||
// -------------
|
// -------------
|
||||||
return res.status(200).send();
|
return res.status(200).send();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.OpenPack = async (req, res) => {
|
exports.OpenPack = async (req, res) => {
|
||||||
|
|
||||||
const userId = req.jwt.userId;
|
const userId = req.jwt.userId;
|
||||||
const packId = req.body.pack;
|
const packId = req.body.pack;
|
||||||
|
|
||||||
@@ -377,39 +382,47 @@ exports.OpenPack = async (req, res) => {
|
|||||||
|
|
||||||
//Get the user add update the array
|
//Get the user add update the array
|
||||||
var user = await UserModel.getById(userId);
|
var user = await UserModel.getById(userId);
|
||||||
if (!user)
|
if (!user) return res.status(404).send({ error: "Cant find user " + userId });
|
||||||
return res.status(404).send({ error: "Cant find user " + userId });
|
|
||||||
|
|
||||||
var pack = await PackModel.get(packId);
|
var pack = await PackModel.get(packId);
|
||||||
if (!pack)
|
if (!pack) return res.status(404).send({ error: "Cant find pack " + packId });
|
||||||
return res.status(404).send({ error: "Cant find pack " + packId });
|
|
||||||
|
|
||||||
if (!UserTool.hasPack(user, packId, 1))
|
if (!UserTool.hasPack(user, packId, 1))
|
||||||
return res.status(400).send({ error: "You don't have this pack" });
|
return res.status(400).send({ error: "You don't have this pack" });
|
||||||
|
|
||||||
|
console.log("pack", pack);
|
||||||
|
|
||||||
var cardsToAdd = await CardTool.getPackCards(pack);
|
var cardsToAdd = await CardTool.getPackCards(pack);
|
||||||
var validCards = await UserTool.addCards(user, cardsToAdd);
|
var validCards = await UserTool.addCards(user, cardsToAdd);
|
||||||
var validPacks = await UserTool.addPacks(user, [{tid: packId, quantity: -1}]);
|
var validPacks = await UserTool.addPacks(user, [
|
||||||
|
{ tid: packId, quantity: -1 },
|
||||||
|
]);
|
||||||
|
|
||||||
|
console.log("getPackCards", cardsToAdd);
|
||||||
|
console.log("validPacks", validPacks);
|
||||||
|
|
||||||
if (!validCards || !validPacks)
|
if (!validCards || !validPacks)
|
||||||
return res.status(500).send({ error: "Error when adding cards" });
|
return res.status(500).send({ error: "Error when adding cards" });
|
||||||
|
|
||||||
//Update the user array
|
//Update the user array
|
||||||
var updatedUser = await UserModel.save(user, ["cards", "packs"]);
|
var updatedUser = await UserModel.save(user, ["cards", "packs"]);
|
||||||
if (!updatedUser) return res.status(500).send({ error: "Error updating user: " + userId });
|
if (!updatedUser)
|
||||||
|
return res.status(500).send({ error: "Error updating user: " + userId });
|
||||||
|
|
||||||
// Activity Log -------------
|
// Activity Log -------------
|
||||||
const activityData = { pack: packId, cards: cardsToAdd };
|
const activityData = { pack: packId, cards: cardsToAdd };
|
||||||
const act = await Activity.LogActivity("user_open_pack", req.jwt.username, activityData);
|
const act = await Activity.LogActivity(
|
||||||
|
"user_open_pack",
|
||||||
|
req.jwt.username,
|
||||||
|
activityData
|
||||||
|
);
|
||||||
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
||||||
|
|
||||||
// -------------
|
// -------------
|
||||||
return res.status(200).send(cardsToAdd);
|
return res.status(200).send(cardsToAdd);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.BuyAvatar = async (req, res) => {
|
exports.BuyAvatar = async (req, res) => {
|
||||||
|
|
||||||
const userId = req.jwt.userId;
|
const userId = req.jwt.userId;
|
||||||
const avatarId = req.body.avatar;
|
const avatarId = req.body.avatar;
|
||||||
|
|
||||||
@@ -418,8 +431,7 @@ exports.BuyAvatar = async (req, res) => {
|
|||||||
|
|
||||||
//Get the user add update the array
|
//Get the user add update the array
|
||||||
var user = await UserModel.getById(userId);
|
var user = await UserModel.getById(userId);
|
||||||
if (!user)
|
if (!user) return res.status(404).send({ error: "Cant find user " + userId });
|
||||||
return res.status(404).send({ error: "Cant find user " + userId });
|
|
||||||
|
|
||||||
var cost = config.avatar_cost;
|
var cost = config.avatar_cost;
|
||||||
if (user.coins < cost)
|
if (user.coins < cost)
|
||||||
@@ -433,18 +445,22 @@ exports.BuyAvatar = async (req, res) => {
|
|||||||
|
|
||||||
//Update the user array
|
//Update the user array
|
||||||
var updatedUser = await UserModel.save(user, ["coins", "avatars"]);
|
var updatedUser = await UserModel.save(user, ["coins", "avatars"]);
|
||||||
if (!updatedUser) return res.status(500).send({ error: "Error updating user: " + userId });
|
if (!updatedUser)
|
||||||
|
return res.status(500).send({ error: "Error updating user: " + userId });
|
||||||
|
|
||||||
// Activity Log -------------
|
// Activity Log -------------
|
||||||
const activityData = { avatar: avatarId };
|
const activityData = { avatar: avatarId };
|
||||||
const act = await Activity.LogActivity("user_buy_avatar", req.jwt.username, activityData);
|
const act = await Activity.LogActivity(
|
||||||
|
"user_buy_avatar",
|
||||||
|
req.jwt.username,
|
||||||
|
activityData
|
||||||
|
);
|
||||||
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
||||||
|
|
||||||
return res.status(200).send();
|
return res.status(200).send();
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.BuyCardback = async (req, res) => {
|
exports.BuyCardback = async (req, res) => {
|
||||||
|
|
||||||
const userId = req.jwt.userId;
|
const userId = req.jwt.userId;
|
||||||
const cardbackId = req.body.cardback;
|
const cardbackId = req.body.cardback;
|
||||||
|
|
||||||
@@ -453,8 +469,7 @@ exports.BuyCardback = async (req, res) => {
|
|||||||
|
|
||||||
//Get the user add update the array
|
//Get the user add update the array
|
||||||
var user = await UserModel.getById(userId);
|
var user = await UserModel.getById(userId);
|
||||||
if (!user)
|
if (!user) return res.status(404).send({ error: "Cant find user " + userId });
|
||||||
return res.status(404).send({ error: "Cant find user " + userId });
|
|
||||||
|
|
||||||
var cost = config.cardback_cost;
|
var cost = config.cardback_cost;
|
||||||
if (user.coins < cost)
|
if (user.coins < cost)
|
||||||
@@ -468,19 +483,23 @@ exports.BuyCardback = async (req, res) => {
|
|||||||
|
|
||||||
//Update the user array
|
//Update the user array
|
||||||
var updatedUser = await UserModel.save(user, ["coins", "cardbacks"]);
|
var updatedUser = await UserModel.save(user, ["coins", "cardbacks"]);
|
||||||
if (!updatedUser) return res.status(500).send({ error: "Error updating user: " + userId });
|
if (!updatedUser)
|
||||||
|
return res.status(500).send({ error: "Error updating user: " + userId });
|
||||||
|
|
||||||
// Activity Log -------------
|
// Activity Log -------------
|
||||||
const activityData = { cardback: cardbackId };
|
const activityData = { cardback: cardbackId };
|
||||||
const act = await Activity.LogActivity("user_buy_cardback", req.jwt.username, activityData);
|
const act = await Activity.LogActivity(
|
||||||
|
"user_buy_cardback",
|
||||||
|
req.jwt.username,
|
||||||
|
activityData
|
||||||
|
);
|
||||||
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
||||||
|
|
||||||
return res.status(200).send();
|
return res.status(200).send();
|
||||||
};
|
};
|
||||||
|
|
||||||
//Fix variant from previous version
|
//Fix variant from previous version
|
||||||
exports.FixVariants = async (req, res) =>
|
exports.FixVariants = async (req, res) => {
|
||||||
{
|
|
||||||
var from = req.body.from || "";
|
var from = req.body.from || "";
|
||||||
var to = req.body.to || "";
|
var to = req.body.to || "";
|
||||||
|
|
||||||
@@ -494,27 +513,22 @@ exports.FixVariants = async (req, res) =>
|
|||||||
var default_tid = default_variant ? default_variant.tid : "";
|
var default_tid = default_variant ? default_variant.tid : "";
|
||||||
var count = 0;
|
var count = 0;
|
||||||
|
|
||||||
for(var u=0; u<users.length; u++)
|
for (var u = 0; u < users.length; u++) {
|
||||||
{
|
|
||||||
var user = users[u];
|
var user = users[u];
|
||||||
var changed = false;
|
var changed = false;
|
||||||
for(var i=0; i<user.cards.length; i++)
|
for (var i = 0; i < user.cards.length; i++) {
|
||||||
{
|
|
||||||
var card = user.cards[i];
|
var card = user.cards[i];
|
||||||
if(!card.variant)
|
if (!card.variant) {
|
||||||
{
|
|
||||||
card.variant = default_tid;
|
card.variant = default_tid;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
if(from && to && card.variant == from)
|
if (from && to && card.variant == from) {
|
||||||
{
|
|
||||||
card.variant = to;
|
card.variant = to;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(changed)
|
if (changed) {
|
||||||
{
|
|
||||||
var new_cards = user.cards;
|
var new_cards = user.cards;
|
||||||
user.cards = [];
|
user.cards = [];
|
||||||
await UserTool.addCards(user, new_cards); //Re-add in correct format
|
await UserTool.addCards(user, new_cards); //Re-add in correct format
|
||||||
@@ -528,4 +542,4 @@ exports.FixVariants = async (req, res) =>
|
|||||||
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
if (!act) return res.status(500).send({ error: "Failed to log activity!!" });
|
||||||
|
|
||||||
return res.status(200).send({ updated: count });
|
return res.status(200).send({ updated: count });
|
||||||
}
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user