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