From 032a1837518c166125183c1b85c7f772ad0d48a1 Mon Sep 17 00:00:00 2001 From: holmityd Date: Mon, 4 Sep 2023 01:11:57 +0400 Subject: [PATCH] missionUpdate interface names --- .../api/missionInventoryUpdateController.ts | 34 ++++++------ src/services/inventoryService.ts | 6 +-- src/types/missionInventoryUpdateType.ts | 54 +++++++++---------- 3 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/controllers/api/missionInventoryUpdateController.ts b/src/controllers/api/missionInventoryUpdateController.ts index 4f2ecf59..514e3136 100644 --- a/src/controllers/api/missionInventoryUpdateController.ts +++ b/src/controllers/api/missionInventoryUpdateController.ts @@ -1,10 +1,10 @@ import { RequestHandler } from "express"; import { missionInventoryUpdate } from "@/src/services/inventoryService"; import { - MissionInventoryUpdate, - MissionInventoryUpdateRewardInfo, - MissionRewardResponse, - Reward + IMissionInventoryUpdate, + IMissionInventoryUpdateRewardInfo, + IMissionRewardResponse, + IReward } from "@/src/types/missionInventoryUpdateType"; import { RawUpgrade } from "@/src/types/inventoryTypes/inventoryTypes"; @@ -68,7 +68,7 @@ const missionInventoryUpdateController: RequestHandler = async (req, res) => { // TODO - salt check try { - const parsedData = JSON.parse(data) as MissionInventoryUpdate; + const parsedData = JSON.parse(data) as IMissionInventoryUpdate; if (typeof parsedData !== "object" || parsedData === null) throw new Error("Invalid data format"); const { InventoryChanges, MissionRewards } = getRewards(parsedData.RewardInfo); @@ -125,8 +125,8 @@ const missionInventoryUpdateController: RequestHandler = async (req, res) => { */ const getRewards = ( - rewardInfo: MissionInventoryUpdateRewardInfo | undefined -): { InventoryChanges: MissionInventoryUpdate; MissionRewards: MissionRewardResponse[] } => { + rewardInfo: IMissionInventoryUpdateRewardInfo | undefined +): { InventoryChanges: IMissionInventoryUpdate; MissionRewards: IMissionRewardResponse[] } => { if (!rewardInfo) return { InventoryChanges: {}, MissionRewards: [] }; // TODO - add Rotation logic @@ -147,13 +147,13 @@ const getRewards = ( // "rewardSeed": -5604904486637266000 // }, - const rewards = (missionsDropTable as { [key: string]: Reward[] })[rewardInfo.node]; + const rewards = (missionsDropTable as { [key: string]: IReward[] })[rewardInfo.node]; if (!rewards) return { InventoryChanges: {}, MissionRewards: [] }; // Separate guaranteed and chance drops - const guaranteedDrops: Reward[] = []; - const chanceDrops: Reward[] = []; + const guaranteedDrops: IReward[] = []; + const chanceDrops: IReward[] = []; for (const reward of rewards) { if (reward.chance === 100) guaranteedDrops.push(reward); else chanceDrops.push(reward); @@ -167,7 +167,7 @@ const getRewards = ( return formatRewardsToInventoryType(guaranteedDrops); }; -const getRandomRewardByChance = (data: Reward[] | undefined): Reward | undefined => { +const getRandomRewardByChance = (data: IReward[] | undefined): IReward | undefined => { if (!data || data.length == 0) return; const totalChance = data.reduce((sum, item) => sum + item.chance, 0); @@ -185,10 +185,10 @@ const getRandomRewardByChance = (data: Reward[] | undefined): Reward | undefined }; const formatRewardsToInventoryType = ( - rewards: Reward[] -): { InventoryChanges: MissionInventoryUpdate; MissionRewards: MissionRewardResponse[] } => { - const InventoryChanges: MissionInventoryUpdate = {}; - const MissionRewards: MissionRewardResponse[] = []; + rewards: IReward[] +): { InventoryChanges: IMissionInventoryUpdate; MissionRewards: IMissionRewardResponse[] } => { + const InventoryChanges: IMissionInventoryUpdate = {}; + const MissionRewards: IMissionRewardResponse[] = []; rewards.forEach(i => { const mod = modNames[i.name]; const skin = skinNames[i.name]; @@ -238,8 +238,8 @@ const formatRewardsToInventoryType = ( // eslint-disable-next-line @typescript-eslint/no-unused-vars const _missionRewardsCheckAllNamings = () => { - let tempRewards: Reward[] = []; - Object.values(missionsDropTable as { [key: string]: Reward[] }).forEach(i => { + let tempRewards: IReward[] = []; + Object.values(missionsDropTable as { [key: string]: IReward[] }).forEach(i => { i.forEach(j => { tempRewards.push(j); }); diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index b36bfcfe..cda4f2b9 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -13,7 +13,7 @@ import { MiscItem, RawUpgrade } from "@/src/types/inventoryTypes/inventoryTypes"; -import { MissionInventoryUpdate, MissionInventoryUpdateGear } from "../types/missionInventoryUpdateType"; +import { IMissionInventoryUpdate, IMissionInventoryUpdateGear } from "../types/missionInventoryUpdateType"; const createInventory = async (accountOwnerId: Types.ObjectId) => { try { @@ -116,7 +116,7 @@ export const addCustomization = async (customizatonName: string, accountId: stri const addGearExpByCategory = ( inventory: IInventoryDatabaseDocument, - gearArray: MissionInventoryUpdateGear[] | undefined, + gearArray: IMissionInventoryUpdateGear[] | undefined, categoryName: "Pistols" | "LongGuns" | "Melee" | "Suits" ) => { const category = inventory[categoryName]; @@ -179,7 +179,7 @@ const addChallenges = (inventory: IInventoryDatabaseDocument, itemsArray: Challe const gearKeys = ["Suits", "Pistols", "LongGuns", "Melee"] as const; type GearKeysType = (typeof gearKeys)[number]; -export const missionInventoryUpdate = async (data: MissionInventoryUpdate, accountId: string) => { +export const missionInventoryUpdate = async (data: IMissionInventoryUpdate, accountId: string) => { const { RawUpgrades, MiscItems, RegularCredits, ChallengeProgress } = data; const inventory = await getInventory(accountId); diff --git a/src/types/missionInventoryUpdateType.ts b/src/types/missionInventoryUpdateType.ts index 023f86ef..e7892911 100644 --- a/src/types/missionInventoryUpdateType.ts +++ b/src/types/missionInventoryUpdateType.ts @@ -1,18 +1,11 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -interface MongooseId { - $oid: string; -} +import { Oid } from "./commonTypes"; +import { Date } from "./inventoryTypes/inventoryTypes"; -interface ExpireDate { - $date: { - $numberLong: string; - }; -} - -export interface MissionInventoryUpdateGear { +export interface IMissionInventoryUpdateGear { ItemType: string; ItemName: string; - ItemId: MongooseId; + ItemId: Oid; XP: number; UpgradeVer: number; Features: number; @@ -20,7 +13,7 @@ export interface MissionInventoryUpdateGear { CustomizationSlotPurchases: number; ModSlotPurchases: number; FocusLens: string; - Expiry: ExpireDate; + Expiry: Date; Polarity: any[]; Configs: any[]; ModularParts: any[]; @@ -29,22 +22,29 @@ export interface MissionInventoryUpdateGear { UpgradeFingerprint: string; OffensiveUpgrade: string; DefensiveUpgrade: string; - UpgradesExpiry: ExpireDate; + UpgradesExpiry: Date; ArchonCrystalUpgrades: any[]; } -export interface MissionInventoryUpdateItem { +export interface IMissionInventoryUpdateItem { ItemCount: number; ItemType: string; } -interface MissionInventoryUpdateChallange { +export interface IMissionInventoryUpdateCard extends IMissionInventoryUpdateItem { + ItemId: Oid; + UpgradeFingerprint: string; + PendingRerollFingerprint: string; + LastAdded: Oid; +} + +export interface IMissionInventoryUpdateChallange { Name: string; Progress: number; Completed: any[]; } -export interface MissionInventoryUpdateRewardInfo { +export interface IMissionInventoryUpdateRewardInfo { node: string; rewardTier?: number; nightmareMode?: boolean; @@ -59,22 +59,22 @@ export interface MissionInventoryUpdateRewardInfo { rewardSeed?: number; } -export interface MissionInventoryUpdate { +export interface IMissionInventoryUpdate { rewardsMultiplier?: number; ActiveBoosters?: any[]; - LongGuns?: MissionInventoryUpdateGear[]; - Pistols?: MissionInventoryUpdateGear[]; - Suits?: MissionInventoryUpdateGear[]; - Melee?: MissionInventoryUpdateGear[]; - RawUpgrades?: MissionInventoryUpdateItem[]; - MiscItems?: MissionInventoryUpdateItem[]; + LongGuns?: IMissionInventoryUpdateGear[]; + Pistols?: IMissionInventoryUpdateGear[]; + Suits?: IMissionInventoryUpdateGear[]; + Melee?: IMissionInventoryUpdateGear[]; + RawUpgrades?: IMissionInventoryUpdateItem[]; + MiscItems?: IMissionInventoryUpdateItem[]; RegularCredits?: number; - ChallengeProgress?: MissionInventoryUpdateChallange[]; - RewardInfo?: MissionInventoryUpdateRewardInfo; + ChallengeProgress?: IMissionInventoryUpdateChallange[]; + RewardInfo?: IMissionInventoryUpdateRewardInfo; FusionPoints?: number; } -export interface MissionRewardResponse { +export interface IMissionRewardResponse { StoreItem?: string; TypeName: string; UpgradeLevel: number; @@ -83,7 +83,7 @@ export interface MissionRewardResponse { ProductCategory: string; } -export interface Reward { +export interface IReward { name: string; chance: number; rotation?: string;