From 79cf50b9ae33a5806f22d7312a7f46f7c80f7ecb Mon Sep 17 00:00:00 2001 From: Sainan Date: Sun, 19 Jan 2025 17:04:38 +0100 Subject: [PATCH] import WeaponSkins --- src/services/importService.ts | 27 ++++++++++++++++------ src/types/inventoryTypes/inventoryTypes.ts | 3 ++- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/services/importService.ts b/src/services/importService.ts index 04158c50..d5f4fffc 100644 --- a/src/services/importService.ts +++ b/src/services/importService.ts @@ -1,7 +1,9 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ + import { Types } from "mongoose"; import { IEquipmentClient, IEquipmentDatabase } from "../types/inventoryTypes/commonInventoryTypes"; import { IMongoDate } from "../types/commonTypes"; -import { IInventoryResponse } from "../types/inventoryTypes/inventoryTypes"; +import { IInventoryResponse, IWeaponSkinClient, IWeaponSkinDatabase } from "../types/inventoryTypes/inventoryTypes"; import { TInventoryDatabaseDocument } from "../models/inventoryModels/inventoryModel"; const convertDate = (value: IMongoDate): Date => { @@ -13,7 +15,6 @@ const convertOptionalDate = (value: IMongoDate | undefined): Date | undefined => }; const convertEquipment = (client: IEquipmentClient): IEquipmentDatabase => { - // eslint-disable-next-line @typescript-eslint/no-unused-vars const { ItemId, ...rest } = client; return { ...rest, @@ -24,10 +25,22 @@ const convertEquipment = (client: IEquipmentClient): IEquipmentDatabase => { }; }; -export const importInventory = (db: TInventoryDatabaseDocument, client: IInventoryResponse): void => { - const clientSuitsInDbFormat = client.Suits.map(x => convertEquipment(x)); - db.Suits.splice(0, db.Suits.length); - clientSuitsInDbFormat.forEach(suitToImport => { - db.Suits.push(suitToImport); +const convertWeaponSkin = (client: IWeaponSkinClient): IWeaponSkinDatabase => { + const { ItemId, ...rest } = client; + return { + ...rest, + _id: new Types.ObjectId(client.ItemId.$oid) + }; +}; + +const replaceArray = (arr: T[], replacement: T[]): void => { + arr.splice(0, arr.length); + replacement.forEach(x => { + arr.push(x); }); }; + +export const importInventory = (db: TInventoryDatabaseDocument, client: IInventoryResponse): void => { + replaceArray(db.Suits, client.Suits.map(convertEquipment)); + replaceArray(db.WeaponSkins, client.WeaponSkins.map(convertWeaponSkin)); +}; diff --git a/src/types/inventoryTypes/inventoryTypes.ts b/src/types/inventoryTypes/inventoryTypes.ts index 8fcc8b27..c1685b2f 100644 --- a/src/types/inventoryTypes/inventoryTypes.ts +++ b/src/types/inventoryTypes/inventoryTypes.ts @@ -916,9 +916,10 @@ export interface ITaunt { export interface IWeaponSkinDatabase { ItemType: string; + _id: Types.ObjectId; } -export interface IWeaponSkinClient extends IWeaponSkinDatabase { +export interface IWeaponSkinClient extends Omit { ItemId: IOid; }