mission inventory update - mods, resources
This commit is contained in:
		
							parent
							
								
									2ed10a80c9
								
							
						
					
					
						commit
						b66fdc17ba
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -4,3 +4,4 @@
 | 
				
			|||||||
/.env
 | 
					/.env
 | 
				
			||||||
/static/data/*.bin
 | 
					/static/data/*.bin
 | 
				
			||||||
yarn.lock
 | 
					yarn.lock
 | 
				
			||||||
 | 
					/tmp
 | 
				
			||||||
@ -1,6 +1,57 @@
 | 
				
			|||||||
import { RequestHandler } from "express";
 | 
					import { RequestHandler } from "express";
 | 
				
			||||||
 | 
					import { addRawUpgrades, addMiscItems } from "@/src/services/inventoryService";
 | 
				
			||||||
 | 
					import fs from 'fs';
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					- [ ]  crossPlaySetting
 | 
				
			||||||
 | 
					- [ ]  rewardsMultiplier
 | 
				
			||||||
 | 
					- [ ]  ActiveBoosters
 | 
				
			||||||
 | 
					- [ ]  LongGuns
 | 
				
			||||||
 | 
					- [ ]  Pistols
 | 
				
			||||||
 | 
					- [ ]  Suits
 | 
				
			||||||
 | 
					- [ ]  Melee
 | 
				
			||||||
 | 
					- [x]  RawUpgrades
 | 
				
			||||||
 | 
					- [x]  MiscItems
 | 
				
			||||||
 | 
					- [ ]  RegularCredits
 | 
				
			||||||
 | 
					- [ ]  RandomUpgradesIdentified
 | 
				
			||||||
 | 
					- [ ]  MissionFailed
 | 
				
			||||||
 | 
					- [ ]  MissionStatus
 | 
				
			||||||
 | 
					- [ ]  CurrentLoadOutIds
 | 
				
			||||||
 | 
					- [ ]  AliveTime
 | 
				
			||||||
 | 
					- [ ]  MissionTime
 | 
				
			||||||
 | 
					- [ ]  Missions
 | 
				
			||||||
 | 
					- [ ]  CompletedAlerts
 | 
				
			||||||
 | 
					- [ ]  LastRegionPlayed
 | 
				
			||||||
 | 
					- [ ]  GameModeId
 | 
				
			||||||
 | 
					- [ ]  hosts
 | 
				
			||||||
 | 
					- [ ]  ChallengeProgress
 | 
				
			||||||
 | 
					- [ ]  SeasonChallengeHistory
 | 
				
			||||||
 | 
					- [ ]  PS
 | 
				
			||||||
 | 
					- [ ]  ActiveDojoColorResearch
 | 
				
			||||||
 | 
					- [ ]  RewardInfo
 | 
				
			||||||
 | 
					- [ ]  ReceivedCeremonyMsg
 | 
				
			||||||
 | 
					- [ ]  LastCeremonyResetDate
 | 
				
			||||||
 | 
					- [ ]  MissionPTS
 | 
				
			||||||
 | 
					- [ ]  RepHash
 | 
				
			||||||
 | 
					- [ ]  EndOfMatchUpload
 | 
				
			||||||
 | 
					- [ ]  ObjectiveReached
 | 
				
			||||||
 | 
					- [ ]  FpsAvg
 | 
				
			||||||
 | 
					- [ ]  FpsMin
 | 
				
			||||||
 | 
					- [ ]  FpsMax
 | 
				
			||||||
 | 
					- [ ]  FpsSamples
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					const missionInventoryUpdateController: RequestHandler = async (req, res) => {
 | 
				
			||||||
 | 
					    fs.writeFile("./tmp/test", req.body, function(err) {
 | 
				
			||||||
 | 
					        if(err) {
 | 
				
			||||||
 | 
					            return console.log(err);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    const [data, _secondIGuessIsSalt] = String(req.body).split("\n");
 | 
				
			||||||
 | 
					    const {RawUpgrades, MiscItems} = JSON.parse(data);
 | 
				
			||||||
 | 
					    const id = req.query.accountId as string;
 | 
				
			||||||
 | 
					    addRawUpgrades(RawUpgrades, id);
 | 
				
			||||||
 | 
					    addMiscItems(MiscItems, id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const missionInventoryUpdateController: RequestHandler = (_req, res) => {
 | 
					 | 
				
			||||||
    res.json({});
 | 
					    res.json({});
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
import { Model, Schema, Types, model } from "mongoose";
 | 
					import { Model, Schema, Types, model } from "mongoose";
 | 
				
			||||||
import { FlavourItem, IInventoryDatabase } from "../types/inventoryTypes/inventoryTypes";
 | 
					import { FlavourItem, RawUpgrade, MiscItem, IInventoryDatabase } from "../types/inventoryTypes/inventoryTypes";
 | 
				
			||||||
import { Oid } from "../types/commonTypes";
 | 
					import { Oid } from "../types/commonTypes";
 | 
				
			||||||
import { ISuitDatabase, ISuitDocument } from "@/src/types/inventoryTypes/SuitTypes";
 | 
					import { ISuitDatabase, ISuitDocument } from "@/src/types/inventoryTypes/SuitTypes";
 | 
				
			||||||
import { IWeaponDatabase } from "@/src/types/inventoryTypes/weaponTypes";
 | 
					import { IWeaponDatabase } from "@/src/types/inventoryTypes/weaponTypes";
 | 
				
			||||||
@ -334,6 +334,8 @@ type InventoryDocumentProps = {
 | 
				
			|||||||
    Pistols: Types.DocumentArray<IWeaponDatabase>;
 | 
					    Pistols: Types.DocumentArray<IWeaponDatabase>;
 | 
				
			||||||
    Melee: Types.DocumentArray<IWeaponDatabase>;
 | 
					    Melee: Types.DocumentArray<IWeaponDatabase>;
 | 
				
			||||||
    FlavourItems: Types.DocumentArray<FlavourItem>;
 | 
					    FlavourItems: Types.DocumentArray<FlavourItem>;
 | 
				
			||||||
 | 
					    RawUpgrades: Types.DocumentArray<RawUpgrade>;
 | 
				
			||||||
 | 
					    MiscItems: Types.DocumentArray<MiscItem>;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type InventoryModelType = Model<IInventoryDatabase, {}, InventoryDocumentProps>;
 | 
					type InventoryModelType = Model<IInventoryDatabase, {}, InventoryDocumentProps>;
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ import { Types } from "mongoose";
 | 
				
			|||||||
import { ISuitResponse } from "@/src/types/inventoryTypes/SuitTypes";
 | 
					import { ISuitResponse } from "@/src/types/inventoryTypes/SuitTypes";
 | 
				
			||||||
import { SlotType } from "@/src/types/purchaseTypes";
 | 
					import { SlotType } from "@/src/types/purchaseTypes";
 | 
				
			||||||
import { IWeaponResponse } from "@/src/types/inventoryTypes/weaponTypes";
 | 
					import { IWeaponResponse } from "@/src/types/inventoryTypes/weaponTypes";
 | 
				
			||||||
import { FlavourItem } from "@/src/types/inventoryTypes/inventoryTypes";
 | 
					import { FlavourItem, RawUpgrade, MiscItem } from "@/src/types/inventoryTypes/inventoryTypes";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const createInventory = async (accountOwnerId: Types.ObjectId) => {
 | 
					const createInventory = async (accountOwnerId: Types.ObjectId) => {
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
@ -106,4 +106,36 @@ export const addCustomization = async (customizatonName: string, accountId: stri
 | 
				
			|||||||
    return changedInventory.FlavourItems[flavourItemIndex].toJSON(); //mongoose bug forces as FlavourItem
 | 
					    return changedInventory.FlavourItems[flavourItemIndex].toJSON(); //mongoose bug forces as FlavourItem
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const addRawUpgrades = async (rawUpgrades: RawUpgrade[], accountId: string): Promise<void> => {
 | 
				
			||||||
 | 
					    const inventory = await getInventory(accountId);
 | 
				
			||||||
 | 
					    rawUpgrades?.forEach(item => {
 | 
				
			||||||
 | 
					        const { ItemCount, ItemType } = item;
 | 
				
			||||||
 | 
					        const existingItemIndex = inventory.RawUpgrades.findIndex(i => i.ItemType === ItemType);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (existingItemIndex !== -1) {
 | 
				
			||||||
 | 
					            inventory.RawUpgrades[existingItemIndex].ItemCount += ItemCount;
 | 
				
			||||||
 | 
					            inventory.markModified('RawUpgrades.' + existingItemIndex + '.ItemCount');
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            inventory.RawUpgrades.push({ ItemCount, ItemType });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    await inventory.save();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const addMiscItems = async (miscItems: MiscItem[], accountId: string): Promise<void> => {
 | 
				
			||||||
 | 
					    const inventory = await getInventory(accountId);
 | 
				
			||||||
 | 
					    miscItems?.forEach(item => {
 | 
				
			||||||
 | 
					        const { ItemCount, ItemType } = item;
 | 
				
			||||||
 | 
					        const existingItemIndex = inventory.MiscItems.findIndex(i => i.ItemType === ItemType);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (existingItemIndex !== -1) {
 | 
				
			||||||
 | 
					            inventory.MiscItems[existingItemIndex].ItemCount += ItemCount;
 | 
				
			||||||
 | 
					            inventory.markModified('MiscItems.' + existingItemIndex + '.ItemCount');
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            inventory.MiscItems.push({ ItemCount, ItemType });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    await inventory.save();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export { createInventory, addPowerSuit };
 | 
					export { createInventory, addPowerSuit };
 | 
				
			||||||
 | 
				
			|||||||
@ -377,6 +377,16 @@ export interface FlavourItem {
 | 
				
			|||||||
    ItemType: string;
 | 
					    ItemType: string;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface RawUpgrade {
 | 
				
			||||||
 | 
					    ItemCount: number;
 | 
				
			||||||
 | 
					    ItemType: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface MiscItem {
 | 
				
			||||||
 | 
					    ItemCount: number;
 | 
				
			||||||
 | 
					    ItemType: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface CrewshipWeapon {
 | 
					export interface CrewshipWeapon {
 | 
				
			||||||
    PILOT: Pilot;
 | 
					    PILOT: Pilot;
 | 
				
			||||||
    PORT_GUNS: PortGuns;
 | 
					    PORT_GUNS: PortGuns;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user