返回提交历史
Modified
src/controllers/api/sellController.ts
+13
-2
Modified
src/models/inventoryModels/inventoryModel.ts
+2
-0
Modified
src/services/inventoryService.ts
+1
-1
XFEstudio/SpaceNinjaServer
feat: implement selling/dissolving of mods (#240)
b1e0de86
代码差异
3 个文件
+16
-3
@@ -1,7 +1,7 @@
1
1
import { RequestHandler } from "express";
2
2
import { ISellRequest } from "@/src/types/sellTypes";
3
3
import { getAccountIdForRequest } from "@/src/services/loginService";
4
import { getInventory } from "@/src/services/inventoryService";
4
import { getInventory, addMods } from "@/src/services/inventoryService";
5
5
6
6
export const sellController: RequestHandler = async (req, res) => {
7
7
const payload: ISellRequest = JSON.parse(req.body.toString());
@@ -43,7 +43,18 @@ export const sellController: RequestHandler = async (req, res) => {
43
43
// Note: sellItem.String is a uniqueName in this case
44
44
}
45
45
if (payload.Items.Upgrades) {
46
// TODO
46
payload.Items.Upgrades.forEach(sellItem => {
47
if (sellItem.Count == 0) {
48
inventory.Upgrades.pull({ _id: sellItem.String });
49
} else {
50
addMods(inventory, [
51
{
52
ItemType: sellItem.String,
53
ItemCount: sellItem.Count * -1
54
}
55
]);
56
}
57
});
47
58
}
48
59
49
60
await inventory.save();
@@ -2,6 +2,7 @@ import { Model, Schema, Types, model } from "mongoose";
2
2
import {
3
3
IFlavourItem,
4
4
IRawUpgrade,
5
ICrewShipSalvagedWeaponSkin,
5
6
IMiscItem,
6
7
IInventoryDatabase,
7
8
IBooster,
@@ -1001,6 +1002,7 @@ type InventoryDocumentProps = {
1001
1002
Melee: Types.DocumentArray<IWeaponDatabase>;
1002
1003
FlavourItems: Types.DocumentArray<IFlavourItem>;
1003
1004
RawUpgrades: Types.DocumentArray<IRawUpgrade>;
1005
Upgrades: Types.DocumentArray<ICrewShipSalvagedWeaponSkin>;
1004
1006
MiscItems: Types.DocumentArray<IMiscItem>;
1005
1007
Boosters: Types.DocumentArray<IBooster>;
1006
1008
OperatorLoadOuts: Types.DocumentArray<IOperatorConfigClient>;
@@ -276,7 +276,7 @@ export const addRecipes = (inventory: IInventoryDatabaseDocument, itemsArray: IT
276
276
});
277
277
};
278
278
279
const addMods = (inventory: IInventoryDatabaseDocument, itemsArray: IRawUpgrade[] | undefined) => {
279
export const addMods = (inventory: IInventoryDatabaseDocument, itemsArray: IRawUpgrade[] | undefined) => {
280
280
const { RawUpgrades } = inventory;
281
281
itemsArray?.forEach(({ ItemType, ItemCount }) => {
282
282
const itemIndex = RawUpgrades.findIndex(i => i.ItemType === ItemType);