missionUpdate interface names

This commit is contained in:
holmityd 2023-09-04 01:11:57 +04:00
parent c2b9629859
commit 032a183751
3 changed files with 47 additions and 47 deletions

View File

@ -1,10 +1,10 @@
import { RequestHandler } from "express"; import { RequestHandler } from "express";
import { missionInventoryUpdate } from "@/src/services/inventoryService"; import { missionInventoryUpdate } from "@/src/services/inventoryService";
import { import {
MissionInventoryUpdate, IMissionInventoryUpdate,
MissionInventoryUpdateRewardInfo, IMissionInventoryUpdateRewardInfo,
MissionRewardResponse, IMissionRewardResponse,
Reward IReward
} from "@/src/types/missionInventoryUpdateType"; } from "@/src/types/missionInventoryUpdateType";
import { RawUpgrade } from "@/src/types/inventoryTypes/inventoryTypes"; import { RawUpgrade } from "@/src/types/inventoryTypes/inventoryTypes";
@ -68,7 +68,7 @@ const missionInventoryUpdateController: RequestHandler = async (req, res) => {
// TODO - salt check // TODO - salt check
try { 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"); if (typeof parsedData !== "object" || parsedData === null) throw new Error("Invalid data format");
const { InventoryChanges, MissionRewards } = getRewards(parsedData.RewardInfo); const { InventoryChanges, MissionRewards } = getRewards(parsedData.RewardInfo);
@ -125,8 +125,8 @@ const missionInventoryUpdateController: RequestHandler = async (req, res) => {
*/ */
const getRewards = ( const getRewards = (
rewardInfo: MissionInventoryUpdateRewardInfo | undefined rewardInfo: IMissionInventoryUpdateRewardInfo | undefined
): { InventoryChanges: MissionInventoryUpdate; MissionRewards: MissionRewardResponse[] } => { ): { InventoryChanges: IMissionInventoryUpdate; MissionRewards: IMissionRewardResponse[] } => {
if (!rewardInfo) return { InventoryChanges: {}, MissionRewards: [] }; if (!rewardInfo) return { InventoryChanges: {}, MissionRewards: [] };
// TODO - add Rotation logic // TODO - add Rotation logic
@ -147,13 +147,13 @@ const getRewards = (
// "rewardSeed": -5604904486637266000 // "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: [] }; if (!rewards) return { InventoryChanges: {}, MissionRewards: [] };
// Separate guaranteed and chance drops // Separate guaranteed and chance drops
const guaranteedDrops: Reward[] = []; const guaranteedDrops: IReward[] = [];
const chanceDrops: Reward[] = []; const chanceDrops: IReward[] = [];
for (const reward of rewards) { for (const reward of rewards) {
if (reward.chance === 100) guaranteedDrops.push(reward); if (reward.chance === 100) guaranteedDrops.push(reward);
else chanceDrops.push(reward); else chanceDrops.push(reward);
@ -167,7 +167,7 @@ const getRewards = (
return formatRewardsToInventoryType(guaranteedDrops); return formatRewardsToInventoryType(guaranteedDrops);
}; };
const getRandomRewardByChance = (data: Reward[] | undefined): Reward | undefined => { const getRandomRewardByChance = (data: IReward[] | undefined): IReward | undefined => {
if (!data || data.length == 0) return; if (!data || data.length == 0) return;
const totalChance = data.reduce((sum, item) => sum + item.chance, 0); const totalChance = data.reduce((sum, item) => sum + item.chance, 0);
@ -185,10 +185,10 @@ const getRandomRewardByChance = (data: Reward[] | undefined): Reward | undefined
}; };
const formatRewardsToInventoryType = ( const formatRewardsToInventoryType = (
rewards: Reward[] rewards: IReward[]
): { InventoryChanges: MissionInventoryUpdate; MissionRewards: MissionRewardResponse[] } => { ): { InventoryChanges: IMissionInventoryUpdate; MissionRewards: IMissionRewardResponse[] } => {
const InventoryChanges: MissionInventoryUpdate = {}; const InventoryChanges: IMissionInventoryUpdate = {};
const MissionRewards: MissionRewardResponse[] = []; const MissionRewards: IMissionRewardResponse[] = [];
rewards.forEach(i => { rewards.forEach(i => {
const mod = modNames[i.name]; const mod = modNames[i.name];
const skin = skinNames[i.name]; const skin = skinNames[i.name];
@ -238,8 +238,8 @@ const formatRewardsToInventoryType = (
// eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line @typescript-eslint/no-unused-vars
const _missionRewardsCheckAllNamings = () => { const _missionRewardsCheckAllNamings = () => {
let tempRewards: Reward[] = []; let tempRewards: IReward[] = [];
Object.values(missionsDropTable as { [key: string]: Reward[] }).forEach(i => { Object.values(missionsDropTable as { [key: string]: IReward[] }).forEach(i => {
i.forEach(j => { i.forEach(j => {
tempRewards.push(j); tempRewards.push(j);
}); });

View File

@ -13,7 +13,7 @@ import {
MiscItem, MiscItem,
RawUpgrade RawUpgrade
} from "@/src/types/inventoryTypes/inventoryTypes"; } from "@/src/types/inventoryTypes/inventoryTypes";
import { MissionInventoryUpdate, MissionInventoryUpdateGear } from "../types/missionInventoryUpdateType"; import { IMissionInventoryUpdate, IMissionInventoryUpdateGear } from "../types/missionInventoryUpdateType";
const createInventory = async (accountOwnerId: Types.ObjectId) => { const createInventory = async (accountOwnerId: Types.ObjectId) => {
try { try {
@ -116,7 +116,7 @@ export const addCustomization = async (customizatonName: string, accountId: stri
const addGearExpByCategory = ( const addGearExpByCategory = (
inventory: IInventoryDatabaseDocument, inventory: IInventoryDatabaseDocument,
gearArray: MissionInventoryUpdateGear[] | undefined, gearArray: IMissionInventoryUpdateGear[] | undefined,
categoryName: "Pistols" | "LongGuns" | "Melee" | "Suits" categoryName: "Pistols" | "LongGuns" | "Melee" | "Suits"
) => { ) => {
const category = inventory[categoryName]; const category = inventory[categoryName];
@ -179,7 +179,7 @@ const addChallenges = (inventory: IInventoryDatabaseDocument, itemsArray: Challe
const gearKeys = ["Suits", "Pistols", "LongGuns", "Melee"] as const; const gearKeys = ["Suits", "Pistols", "LongGuns", "Melee"] as const;
type GearKeysType = (typeof gearKeys)[number]; 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 { RawUpgrades, MiscItems, RegularCredits, ChallengeProgress } = data;
const inventory = await getInventory(accountId); const inventory = await getInventory(accountId);

View File

@ -1,18 +1,11 @@
/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-explicit-any */
interface MongooseId { import { Oid } from "./commonTypes";
$oid: string; import { Date } from "./inventoryTypes/inventoryTypes";
}
interface ExpireDate { export interface IMissionInventoryUpdateGear {
$date: {
$numberLong: string;
};
}
export interface MissionInventoryUpdateGear {
ItemType: string; ItemType: string;
ItemName: string; ItemName: string;
ItemId: MongooseId; ItemId: Oid;
XP: number; XP: number;
UpgradeVer: number; UpgradeVer: number;
Features: number; Features: number;
@ -20,7 +13,7 @@ export interface MissionInventoryUpdateGear {
CustomizationSlotPurchases: number; CustomizationSlotPurchases: number;
ModSlotPurchases: number; ModSlotPurchases: number;
FocusLens: string; FocusLens: string;
Expiry: ExpireDate; Expiry: Date;
Polarity: any[]; Polarity: any[];
Configs: any[]; Configs: any[];
ModularParts: any[]; ModularParts: any[];
@ -29,22 +22,29 @@ export interface MissionInventoryUpdateGear {
UpgradeFingerprint: string; UpgradeFingerprint: string;
OffensiveUpgrade: string; OffensiveUpgrade: string;
DefensiveUpgrade: string; DefensiveUpgrade: string;
UpgradesExpiry: ExpireDate; UpgradesExpiry: Date;
ArchonCrystalUpgrades: any[]; ArchonCrystalUpgrades: any[];
} }
export interface MissionInventoryUpdateItem { export interface IMissionInventoryUpdateItem {
ItemCount: number; ItemCount: number;
ItemType: string; ItemType: string;
} }
interface MissionInventoryUpdateChallange { export interface IMissionInventoryUpdateCard extends IMissionInventoryUpdateItem {
ItemId: Oid;
UpgradeFingerprint: string;
PendingRerollFingerprint: string;
LastAdded: Oid;
}
export interface IMissionInventoryUpdateChallange {
Name: string; Name: string;
Progress: number; Progress: number;
Completed: any[]; Completed: any[];
} }
export interface MissionInventoryUpdateRewardInfo { export interface IMissionInventoryUpdateRewardInfo {
node: string; node: string;
rewardTier?: number; rewardTier?: number;
nightmareMode?: boolean; nightmareMode?: boolean;
@ -59,22 +59,22 @@ export interface MissionInventoryUpdateRewardInfo {
rewardSeed?: number; rewardSeed?: number;
} }
export interface MissionInventoryUpdate { export interface IMissionInventoryUpdate {
rewardsMultiplier?: number; rewardsMultiplier?: number;
ActiveBoosters?: any[]; ActiveBoosters?: any[];
LongGuns?: MissionInventoryUpdateGear[]; LongGuns?: IMissionInventoryUpdateGear[];
Pistols?: MissionInventoryUpdateGear[]; Pistols?: IMissionInventoryUpdateGear[];
Suits?: MissionInventoryUpdateGear[]; Suits?: IMissionInventoryUpdateGear[];
Melee?: MissionInventoryUpdateGear[]; Melee?: IMissionInventoryUpdateGear[];
RawUpgrades?: MissionInventoryUpdateItem[]; RawUpgrades?: IMissionInventoryUpdateItem[];
MiscItems?: MissionInventoryUpdateItem[]; MiscItems?: IMissionInventoryUpdateItem[];
RegularCredits?: number; RegularCredits?: number;
ChallengeProgress?: MissionInventoryUpdateChallange[]; ChallengeProgress?: IMissionInventoryUpdateChallange[];
RewardInfo?: MissionInventoryUpdateRewardInfo; RewardInfo?: IMissionInventoryUpdateRewardInfo;
FusionPoints?: number; FusionPoints?: number;
} }
export interface MissionRewardResponse { export interface IMissionRewardResponse {
StoreItem?: string; StoreItem?: string;
TypeName: string; TypeName: string;
UpgradeLevel: number; UpgradeLevel: number;
@ -83,7 +83,7 @@ export interface MissionRewardResponse {
ProductCategory: string; ProductCategory: string;
} }
export interface Reward { export interface IReward {
name: string; name: string;
chance: number; chance: number;
rotation?: string; rotation?: string;