chore: do addItem on inventory document, not accountId #699
@ -1,5 +1,5 @@
|
||||
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||
import { updateCurrencyByAccountId } from "@/src/services/inventoryService";
|
||||
import { getInventory, updateCurrency } from "@/src/services/inventoryService";
|
||||
import { RequestHandler } from "express";
|
||||
import { updateSlots } from "@/src/services/inventoryService";
|
||||
import { InventorySlot } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||
@ -26,8 +26,10 @@ export const inventorySlotsController: RequestHandler = async (req, res) => {
|
||||
|
||||
//TODO: check which slot was purchased because pvpBonus is also possible
|
||||
|
||||
const currencyChanges = await updateCurrencyByAccountId(20, true, accountId);
|
||||
await updateSlots(accountId, InventorySlot.PVE_LOADOUTS, 1, 1);
|
||||
const inventory = await getInventory(accountId);
|
||||
const currencyChanges = updateCurrency(inventory, 20, true);
|
||||
updateSlots(inventory, InventorySlot.PVE_LOADOUTS, 1, 1);
|
||||
await inventory.save();
|
||||
|
||||
//console.log({ InventoryChanges: currencyChanges }, " added loadout changes:");
|
||||
|
||||
|
@ -215,8 +215,8 @@ export const addItem = async (
|
||||
default: {
|
||||
const inventory = await getInventory(accountId);
|
||||
const inventoryChanges = addPowerSuit(inventory, typeName);
|
||||
updateSlots(inventory, InventorySlot.SUITS, 0, 1);
|
||||
await inventory.save();
|
||||
await updateSlots(accountId, InventorySlot.SUITS, 0, 1);
|
||||
return {
|
||||
InventoryChanges: {
|
||||
...inventoryChanges,
|
||||
@ -231,8 +231,8 @@ export const addItem = async (
|
||||
case "Archwing": {
|
||||
const inventory = await getInventory(accountId);
|
||||
const inventoryChanges = addSpaceSuit(inventory, typeName);
|
||||
updateSlots(inventory, InventorySlot.SPACESUITS, 0, 1);
|
||||
await inventory.save();
|
||||
await updateSlots(accountId, InventorySlot.SPACESUITS, 0, 1);
|
||||
return {
|
||||
InventoryChanges: {
|
||||
...inventoryChanges,
|
||||
@ -247,8 +247,8 @@ export const addItem = async (
|
||||
case "EntratiMech": {
|
||||
const inventory = await getInventory(accountId);
|
||||
const inventoryChanges = addMechSuit(inventory, typeName);
|
||||
updateSlots(inventory, InventorySlot.MECHSUITS, 0, 1);
|
||||
await inventory.save();
|
||||
await updateSlots(accountId, InventorySlot.MECHSUITS, 0, 1);
|
||||
return {
|
||||
InventoryChanges: {
|
||||
...inventoryChanges,
|
||||
@ -266,8 +266,8 @@ export const addItem = async (
|
||||
const inventory = await getInventory(accountId);
|
||||
const weaponType = getWeaponType(typeName);
|
||||
const inventoryChanges = addEquipment(inventory, weaponType, typeName);
|
||||
updateSlots(inventory, InventorySlot.WEAPONS, 0, 1);
|
||||
await inventory.save();
|
||||
await updateSlots(accountId, InventorySlot.WEAPONS, 0, 1);
|
||||
return {
|
||||
InventoryChanges: {
|
||||
...inventoryChanges,
|
||||
@ -297,8 +297,8 @@ export const addItem = async (
|
||||
case "Sentinels": {
|
||||
const inventory = await getInventory(accountId);
|
||||
const inventoryChanges = addSentinel(inventory, typeName);
|
||||
updateSlots(inventory, InventorySlot.SENTINELS, 0, 1);
|
||||
await inventory.save();
|
||||
await updateSlots(accountId, InventorySlot.SENTINELS, 0, 1);
|
||||
return {
|
||||
InventoryChanges: {
|
||||
...inventoryChanges,
|
||||
@ -485,22 +485,18 @@ export const addSpaceSuit = (
|
||||
return inventoryChanges;
|
||||
};
|
||||
|
||||
export const updateSlots = async (
|
||||
accountId: string,
|
||||
export const updateSlots = (
|
||||
inventory: TInventoryDatabaseDocument,
|
||||
slotName: SlotNames,
|
||||
slotAmount: number,
|
||||
extraAmount: number
|
||||
): Promise<void> => {
|
||||
const inventory = await getInventory(accountId);
|
||||
|
||||
): void => {
|
||||
inventory[slotName].Slots += slotAmount;
|
||||
if (inventory[slotName].Extra === undefined) {
|
||||
inventory[slotName].Extra = extraAmount;
|
||||
} else {
|
||||
inventory[slotName].Extra += extraAmount;
|
||||
}
|
||||
|
||||
await inventory.save();
|
||||
};
|
||||
|
||||
const isCurrencyTracked = (usePremium: boolean): boolean => {
|
||||
|
@ -248,7 +248,9 @@ const handleSlotPurchase = async (
|
||||
const slotName = slotPurchaseNameToSlotName[slotPurchaseName].name;
|
||||
const slotsPerPurchase = slotPurchaseNameToSlotName[slotPurchaseName].slotsPerPurchase;
|
||||
|
||||
await updateSlots(accountId, slotName, slotsPerPurchase, slotsPerPurchase);
|
||||
const inventory = await getInventory(accountId);
|
||||
updateSlots(inventory, slotName, slotsPerPurchase, slotsPerPurchase);
|
||||
await inventory.save();
|
||||
|
||||
logger.debug(`added ${slotsPerPurchase} slot ${slotName}`);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user