feat: implement selling/dissolving of mods (#240)
This commit is contained in:
parent
a0b293685d
commit
b1e0de862f
@ -1,7 +1,7 @@
|
||||
import { RequestHandler } from "express";
|
||||
import { ISellRequest } from "@/src/types/sellTypes";
|
||||
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||
import { getInventory } from "@/src/services/inventoryService";
|
||||
import { getInventory, addMods } from "@/src/services/inventoryService";
|
||||
|
||||
export const sellController: RequestHandler = async (req, res) => {
|
||||
const payload: ISellRequest = JSON.parse(req.body.toString());
|
||||
@ -43,7 +43,18 @@ export const sellController: RequestHandler = async (req, res) => {
|
||||
// Note: sellItem.String is a uniqueName in this case
|
||||
}
|
||||
if (payload.Items.Upgrades) {
|
||||
// TODO
|
||||
payload.Items.Upgrades.forEach(sellItem => {
|
||||
if (sellItem.Count == 0) {
|
||||
inventory.Upgrades.pull({ _id: sellItem.String });
|
||||
} else {
|
||||
addMods(inventory, [
|
||||
{
|
||||
ItemType: sellItem.String,
|
||||
ItemCount: sellItem.Count * -1
|
||||
}
|
||||
]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
await inventory.save();
|
||||
|
@ -2,6 +2,7 @@ import { Model, Schema, Types, model } from "mongoose";
|
||||
import {
|
||||
IFlavourItem,
|
||||
IRawUpgrade,
|
||||
ICrewShipSalvagedWeaponSkin,
|
||||
IMiscItem,
|
||||
IInventoryDatabase,
|
||||
IBooster,
|
||||
@ -1001,6 +1002,7 @@ type InventoryDocumentProps = {
|
||||
Melee: Types.DocumentArray<IWeaponDatabase>;
|
||||
FlavourItems: Types.DocumentArray<IFlavourItem>;
|
||||
RawUpgrades: Types.DocumentArray<IRawUpgrade>;
|
||||
Upgrades: Types.DocumentArray<ICrewShipSalvagedWeaponSkin>;
|
||||
MiscItems: Types.DocumentArray<IMiscItem>;
|
||||
Boosters: Types.DocumentArray<IBooster>;
|
||||
OperatorLoadOuts: Types.DocumentArray<IOperatorConfigClient>;
|
||||
|
@ -276,7 +276,7 @@ export const addRecipes = (inventory: IInventoryDatabaseDocument, itemsArray: IT
|
||||
});
|
||||
};
|
||||
|
||||
const addMods = (inventory: IInventoryDatabaseDocument, itemsArray: IRawUpgrade[] | undefined) => {
|
||||
export const addMods = (inventory: IInventoryDatabaseDocument, itemsArray: IRawUpgrade[] | undefined) => {
|
||||
const { RawUpgrades } = inventory;
|
||||
itemsArray?.forEach(({ ItemType, ItemCount }) => {
|
||||
const itemIndex = RawUpgrades.findIndex(i => i.ItemType === ItemType);
|
||||
|
Loading…
x
Reference in New Issue
Block a user