feat(admin): track hourglasses as transactions

This commit is contained in:
SabreCat
2022-09-06 16:15:04 -05:00
parent 90f1977a49
commit 0081bad831
4 changed files with 27 additions and 2 deletions

View File

@@ -213,5 +213,6 @@
"transaction_release_mounts": "Released mounts", "transaction_release_mounts": "Released mounts",
"transaction_reroll": "Used Fortify Potion", "transaction_reroll": "Used Fortify Potion",
"transaction_subscription_perks": "From subscription perk", "transaction_subscription_perks": "From subscription perk",
"transaction_admin_update_balance": "Admin given" "transaction_admin_update_balance": "Admin given",
"transaction_admin_update_hourglasses": "Admin updated"
} }

View File

@@ -279,6 +279,11 @@ api.updateHero = {
} }
if (updateData.purchased.plan.consecutive) { if (updateData.purchased.plan.consecutive) {
if (updateData.purchased.plan.consecutive.trinkets) { if (updateData.purchased.plan.consecutive.trinkets) {
await hero.updateHourglasses(
updateData.purchased.plan.consecutive.trinkets
- hero.purchased.plan.consecutive.trinkets,
'admin_update_hourglasses', '', 'Updated by Habitica staff',
);
hero.purchased.plan.consecutive.trinkets = updateData.purchased.plan.consecutive.trinkets; hero.purchased.plan.consecutive.trinkets = updateData.purchased.plan.consecutive.trinkets;
} }
if (updateData.purchased.plan.consecutive.gemCapExtra) { if (updateData.purchased.plan.consecutive.gemCapExtra) {

View File

@@ -5,7 +5,7 @@ import baseModel from '../libs/baseModel';
const { Schema } = mongoose; const { Schema } = mongoose;
export const currencies = ['gems', 'hourglasses']; export const currencies = ['gems', 'hourglasses'];
export const transactionTypes = ['buy_money', 'buy_gold', 'spend', 'gift_send', 'gift_receive', 'debug', 'create_challenge', 'create_bank_challenge', 'create_guild', 'change_class', 'rebirth', 'release_pets', 'release_mounts', 'reroll', 'contribution', 'subscription_perks', 'admin_update_balance']; export const transactionTypes = ['buy_money', 'buy_gold', 'spend', 'gift_send', 'gift_receive', 'debug', 'create_challenge', 'create_bank_challenge', 'create_guild', 'change_class', 'rebirth', 'release_pets', 'release_mounts', 'reroll', 'contribution', 'subscription_perks', 'admin_update_balance', 'admin_update_hourglasses'];
export const schema = new Schema({ export const schema = new Schema({
currency: { $type: String, enum: currencies, required: true }, currency: { $type: String, enum: currencies, required: true },

View File

@@ -577,3 +577,22 @@ schema.methods.updateBalance = async function updateBalance (amount,
currentAmount: this.balance, currentAmount: this.balance,
}); });
}; };
schema.methods.updateHourglasses = async function updateHourglasses (
amount,
transactionType,
reference,
referenceText,
) {
this.purchased.plan.consecutive.trinkets += amount;
await Transaction.create({
currency: 'hourglasses',
userId: this._id,
transactionType,
amount,
reference,
referenceText,
currentAmount: this.purchased.plan.consecutive.trinkets,
});
};