MissionInventoryUpdate(not completed), Mod upgrade, Booster purchase #49

Merged
holmityd merged 40 commits from interface-names into main 2023-09-06 03:02:54 -07:00
2 changed files with 33 additions and 6 deletions
Showing only changes of commit 37e5e0defa - Show all commits

View File

@ -2,6 +2,7 @@ import { RequestHandler } from "express";
import { missionInventoryUpdate } from "@/src/services/inventoryService";
import { MissionInventoryUpdate } from "@/src/types/missionInventoryUpdateType";
/*
**** INPUT ****
- [ ] crossPlaySetting
- [ ] rewardsMultiplier
- [ ] ActiveBoosters
@ -50,13 +51,38 @@ const missionInventoryUpdateController: RequestHandler = async (req, res) => {
try {
const parsedData = JSON.parse(data) as MissionInventoryUpdate;
if (typeof parsedData !== "object" || parsedData === null) throw new Error("Invalid data format");
await missionInventoryUpdate(parsedData, id);
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const InventoryJson = JSON.stringify(await missionInventoryUpdate(parsedData, id));
OrdisPrime commented 2023-09-05 05:35:07 -07:00 (Migrated from github.com)
Review

what is the purpose of this?

what is the purpose of this?
OrdisPrime commented 2023-09-05 05:43:03 -07:00 (Migrated from github.com)
Review

can you explain what the difference is between missioncredits and MissionCredits?

can you explain what the difference is between missioncredits and MissionCredits?
OrdisPrime commented 2023-09-05 05:46:03 -07:00 (Migrated from github.com)
Review

can you please use brackets like:
if (something){
expression;
}

can you please use brackets like: if (something){ expression; }
OrdisPrime commented 2023-09-05 05:46:25 -07:00 (Migrated from github.com)
Review

it makes it easier to read

it makes it easier to read
OrdisPrime commented 2023-09-05 05:47:38 -07:00 (Migrated from github.com)
Review

where possible: instead of "i" or "j" use descriptive names such as rawUpgrade or so

where possible: instead of "i" or "j" use descriptive names such as rawUpgrade or so
OrdisPrime commented 2023-09-05 05:49:43 -07:00 (Migrated from github.com)
Review

perhaps make a function for this logic.
A controller should only "control" the calling of functions, with as little logic as possible.
You could make a service/missionInventoryUpdateService and put all the logic there, while you call those functions from the controller. Some logic in the controller is totally fine.

perhaps make a function for this logic. A controller should only "control" the calling of functions, with as little logic as possible. You could make a service/missionInventoryUpdateService and put all the logic there, while you call those functions from the controller. Some logic in the controller is totally fine.
OrdisPrime commented 2023-09-05 05:50:28 -07:00 (Migrated from github.com)
Review

move types and interfaces into types/missionInventoryTypes

move types and interfaces into types/missionInventoryTypes
const missionCredits = parsedData.RegularCredits || 0;
const creditsBonus = 0;
const totalCredits = missionCredits + creditsBonus;
const MissionCredits = [missionCredits, missionCredits]; // collected credits
const CreditsBonus = [creditsBonus, creditsBonus]; // mission reward
OrdisPrime commented 2023-09-03 06:14:51 -07:00 (Migrated from github.com)
Review

can you seperate interfaces into seperate files? we got the /types folder, for example string dictionary could be in /types/commonTypes.ts

can you seperate interfaces into seperate files? we got the /types folder, for example string dictionary could be in /types/commonTypes.ts
OrdisPrime commented 2023-09-03 06:15:35 -07:00 (Migrated from github.com)
Review

is this the best way? looks a bit suspicious with the many else ifs

is this the best way? looks a bit suspicious with the many else ifs
OrdisPrime commented 2023-09-03 06:20:43 -07:00 (Migrated from github.com)
Review

and you could make a types/missionInventoryUpdatesTypes.ts as well

and you could make a types/missionInventoryUpdatesTypes.ts as well
holmityd commented 2023-09-03 10:36:13 -07:00 (Migrated from github.com)
Review

need that like this for now

need that like this for now
const TotalCredits = [totalCredits, totalCredits];
// TODO - get missions reward table
res.json({
// InventoryJson, // this part will reset game data and missions will be locked
TotalCredits,
CreditsBonus,
MissionCredits
});
} catch (err) {
console.error("Error parsing JSON data:", err);
}
// TODO - get original response
res.json({});
};
/*
**** OUTPUT ****
- [x] InventoryJson
- [ ] MissionRewards
- [x] TotalCredits
- [x] CreditsBonus
- [x] MissionCredits
- [ ] InventoryChanges
*/
export { missionInventoryUpdateController };

View File

@ -167,7 +167,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): Promise<void> => {
export const missionInventoryUpdate = async (data: MissionInventoryUpdate, accountId: string) => {
const { RawUpgrades, MiscItems, RegularCredits, ChallengeProgress } = data;
const inventory = await getInventory(accountId);
@ -183,7 +183,8 @@ export const missionInventoryUpdate = async (data: MissionInventoryUpdate, accou
addItemsByCategory(inventory, MiscItems, "MiscItems");
addChallenges(inventory, ChallengeProgress);
await inventory.save();
const changedInventory = await inventory.save();
return changedInventory.toJSON();
};
export const addBooster = async (ItemType: string, time: number, accountId: string): Promise<void> => {