chore: optimise stats/view.php #816
@ -1,14 +1,14 @@
|
|||||||
import { RequestHandler } from "express";
|
import { RequestHandler } from "express";
|
||||||
import { getAccountIdForRequest } from "@/src/services/loginService";
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||||
import { Inventory } from "@/src/models/inventoryModels/inventoryModel";
|
|
||||||
import { IStatsView } from "@/src/types/statTypes";
|
import { IStatsView } from "@/src/types/statTypes";
|
||||||
import { config } from "@/src/services/configService";
|
import { config } from "@/src/services/configService";
|
||||||
import allScans from "@/static/fixed_responses/allScans.json";
|
import allScans from "@/static/fixed_responses/allScans.json";
|
||||||
import { ExportEnemies } from "warframe-public-export-plus";
|
import { ExportEnemies } from "warframe-public-export-plus";
|
||||||
|
import { getInventory } from "@/src/services/inventoryService";
|
||||||
|
|
||||||
const viewController: RequestHandler = async (req, res) => {
|
const viewController: RequestHandler = async (req, res) => {
|
||||||
const accountId = await getAccountIdForRequest(req);
|
const accountId = await getAccountIdForRequest(req);
|
||||||
const inventory = await Inventory.findOne({ accountOwnerId: accountId });
|
const inventory = await getInventory(accountId, "XPInfo");
|
||||||
if (!inventory) {
|
if (!inventory) {
|
||||||
res.status(400).json({ error: "inventory was undefined" });
|
res.status(400).json({ error: "inventory was undefined" });
|
||||||
return;
|
return;
|
||||||
@ -23,12 +23,16 @@ const viewController: RequestHandler = async (req, res) => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (config.unlockAllScans) {
|
if (config.unlockAllScans) {
|
||||||
responseJson.Scans = allScans;
|
const scans = new Set(allScans);
|
||||||
for (const type of Object.keys(ExportEnemies.avatars)) {
|
for (const type of Object.keys(ExportEnemies.avatars)) {
|
||||||
if (!responseJson.Scans.find(x => x.type == type)) {
|
if (!scans.has(type)) {
|
||||||
responseJson.Scans.push({ type, scans: 9999 });
|
scans.add(type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
responseJson.Scans = [];
|
||||||
|
for (const type of scans) {
|
||||||
|
responseJson.Scans.push({ type: type, scans: 9999 });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
res.json(responseJson);
|
res.json(responseJson);
|
||||||
};
|
};
|
||||||
|
@ -96,8 +96,11 @@ export const combineInventoryChanges = (InventoryChanges: IInventoryChanges, del
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getInventory = async (accountOwnerId: string): Promise<TInventoryDatabaseDocument> => {
|
export const getInventory = async (
|
||||||
const inventory = await Inventory.findOne({ accountOwnerId: accountOwnerId });
|
accountOwnerId: string,
|
||||||
|
projection: string | undefined = undefined
|
||||||
|
): Promise<TInventoryDatabaseDocument> => {
|
||||||
|
const inventory = await Inventory.findOne({ accountOwnerId: accountOwnerId }, projection);
|
||||||
|
|
||||||
if (!inventory) {
|
if (!inventory) {
|
||||||
throw new Error(`Didn't find an inventory for ${accountOwnerId}`);
|
throw new Error(`Didn't find an inventory for ${accountOwnerId}`);
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user