diff --git a/src/controllers/api/arcaneCommonController.ts b/src/controllers/api/arcaneCommonController.ts index 2caccc29..1028fc3f 100644 --- a/src/controllers/api/arcaneCommonController.ts +++ b/src/controllers/api/arcaneCommonController.ts @@ -44,7 +44,7 @@ export const arcaneCommonController: RequestHandler = async (req, res) => { ItemType: json.arcane.ItemType, UpgradeFingerprint: JSON.stringify({ lvl: json.newRank }) }); - upgradeId = inventory.Upgrades[newLength - 1]._id!.toString(); + upgradeId = inventory.Upgrades[newLength - 1]._id.toString(); } // Remove RawUpgrades diff --git a/src/controllers/api/artifactsController.ts b/src/controllers/api/artifactsController.ts index a5ec66fa..564d222a 100644 --- a/src/controllers/api/artifactsController.ts +++ b/src/controllers/api/artifactsController.ts @@ -1,7 +1,7 @@ import { getJSONfromString } from "@/src/helpers/stringHelpers"; import { getAccountIdForRequest } from "@/src/services/loginService"; import { RequestHandler } from "express"; -import { ICrewShipSalvagedWeaponSkin } from "@/src/types/inventoryTypes/inventoryTypes"; +import { IInventoryClient, IUpgradeClient } from "@/src/types/inventoryTypes/inventoryTypes"; import { addMods, getInventory } from "@/src/services/inventoryService"; import { config } from "@/src/services/configService"; @@ -20,7 +20,7 @@ export const artifactsController: RequestHandler = async (req, res) => { parsedUpgradeFingerprint.lvl += LevelDiff; const stringifiedUpgradeFingerprint = JSON.stringify(parsedUpgradeFingerprint); - let itemIndex = Upgrades.findIndex(upgrade => upgrade._id?.equals(ItemId!.$oid)); + let itemIndex = Upgrades.findIndex(upgrade => upgrade._id.equals(ItemId.$oid)); if (itemIndex !== -1) { Upgrades[itemIndex].UpgradeFingerprint = stringifiedUpgradeFingerprint; @@ -58,7 +58,7 @@ export const artifactsController: RequestHandler = async (req, res) => { } const changedInventory = await inventory.save(); - const itemId = changedInventory.toJSON().Upgrades[itemIndex]?.ItemId?.$oid; + const itemId = changedInventory.toJSON().Upgrades[itemIndex].ItemId.$oid; if (!itemId) { throw new Error("Item Id not found in upgradeMod"); @@ -68,7 +68,7 @@ export const artifactsController: RequestHandler = async (req, res) => { }; interface IArtifactsRequest { - Upgrade: ICrewShipSalvagedWeaponSkin; + Upgrade: IUpgradeClient; LevelDiff: number; Cost: number; FusionPointCost: number; diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index 80486a9c..0f370860 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -2,7 +2,6 @@ import { Document, Model, Schema, Types, model } from "mongoose"; import { IFlavourItem, IRawUpgrade, - ICrewShipSalvagedWeaponSkin, IMiscItem, IInventoryDatabase, IBooster, @@ -52,7 +51,8 @@ import { IDialogueDatabase, IDialogueGift, ICompletedDialogue, - IDialogueClient + IDialogueClient, + IUpgradeDatabase } from "../../types/inventoryTypes/inventoryTypes"; import { IOid } from "../../types/commonTypes"; import { @@ -288,7 +288,7 @@ RawUpgrades.set("toJSON", { } }); -const upgradesSchema = new Schema( +const upgradeSchema = new Schema( { UpgradeFingerprint: String, PendingRerollFingerprint: { type: String, required: false }, @@ -297,11 +297,11 @@ const upgradesSchema = new Schema( { id: false } ); -upgradesSchema.virtual("ItemId").get(function () { +upgradeSchema.virtual("ItemId").get(function () { return toOid(this._id); }); -upgradesSchema.set("toJSON", { +upgradeSchema.set("toJSON", { virtuals: true, transform(_document, returnedObject) { delete returnedObject._id; @@ -848,7 +848,7 @@ const inventorySchema = new Schema( //Non Upgrade Mods Example:I have 999 item WeaponElectricityDamageMod (only "ItemCount"+"ItemType") RawUpgrades: [RawUpgrades], //Upgrade Mods\Riven\Arcane Example:"UpgradeFingerprint"+"ItemType"+"" - Upgrades: [upgradesSchema], + Upgrades: [upgradeSchema], //Warframe Suits: [EquipmentSchema], @@ -1164,7 +1164,7 @@ type InventoryDocumentProps = { OperatorAmps: Types.DocumentArray; FlavourItems: Types.DocumentArray; RawUpgrades: Types.DocumentArray; - Upgrades: Types.DocumentArray; + Upgrades: Types.DocumentArray; MiscItems: Types.DocumentArray; Boosters: Types.DocumentArray; OperatorLoadOuts: Types.DocumentArray; diff --git a/src/types/inventoryTypes/inventoryTypes.ts b/src/types/inventoryTypes/inventoryTypes.ts index 34185a27..edcdbe15 100644 --- a/src/types/inventoryTypes/inventoryTypes.ts +++ b/src/types/inventoryTypes/inventoryTypes.ts @@ -25,6 +25,9 @@ export interface IInventoryDatabase | "Ships" | "WeaponSkins" | "Suits" + | "Upgrades" + | "CrewShipSalvagedWeaponSkins" + | "CrewShipWeaponSkins" > { accountOwnerId: Types.ObjectId; Created: Date; @@ -38,6 +41,9 @@ export interface IInventoryDatabase Ships: Types.ObjectId[]; WeaponSkins: IWeaponSkinDatabase[]; Suits: IEquipmentDatabase[]; + Upgrades: IUpgradeDatabase[]; + CrewShipSalvagedWeaponSkins: IUpgradeDatabase[]; + CrewShipWeaponSkins: IUpgradeDatabase[]; } export interface IQuestKeyDatabase { @@ -194,7 +200,7 @@ export interface IInventoryClient extends IDailyAffiliations { Accolades?: { Heirloom?: boolean; }; - Upgrades: ICrewShipSalvagedWeaponSkin[]; + Upgrades: IUpgradeClient[]; EquippedGear: string[]; DeathMarks: string[]; FusionTreasures: IFusionTreasure[]; @@ -272,10 +278,10 @@ export interface IInventoryClient extends IDailyAffiliations { CrewShips: ICrewShip[]; PlayerSkills: IPlayerSkills; CrewShipAmmo: IConsumable[]; - CrewShipSalvagedWeaponSkins: ICrewShipSalvagedWeaponSkin[]; + CrewShipSalvagedWeaponSkins: IUpgradeClient[]; CrewShipWeapons: ICrewShipWeapon[]; CrewShipSalvagedWeapons: ICrewShipWeapon[]; - CrewShipWeaponSkins: ICrewShipSalvagedWeaponSkin[]; + CrewShipWeaponSkins: IUpgradeClient[]; TradeBannedUntil?: IMongoDate; PlayedParkourTutorial: boolean; SubscribedToEmailsPersonalized: number; @@ -418,12 +424,15 @@ export interface ISlots { Slots: number; } -export interface ICrewShipSalvagedWeaponSkin { +export interface IUpgradeClient { ItemType: string; UpgradeFingerprint?: string; PendingRerollFingerprint?: string; - ItemId?: IOid; - _id?: Types.ObjectId; + ItemId: IOid; +} + +export interface IUpgradeDatabase extends Omit { + _id: Types.ObjectId; } export interface ICrewShip {