mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 06:37:23 +01:00
feat(admin): track hourglasses as transactions
This commit is contained in:
@@ -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"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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 },
|
||||||
|
|||||||
@@ -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,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user