SpaceNinjaServer/src/controllers/custom/getItemListsController.ts

42 lines
1.3 KiB
TypeScript

import { RequestHandler } from "express";
import { MinItem, warframes, weapons, items, getEnglishString } from "@/src/services/itemDataService";
import badItems from "@/static/json/exclude-mods.json";
import ExportArcanes from "@/node_modules/warframe-public-export-plus/ExportArcanes.json";
interface ListedItem {
uniqueName: string;
name: string;
fusionLimit?: number;
}
function reduceItems(items: MinItem[]): ListedItem[] {
return items.map((item: MinItem): ListedItem => {
return {
uniqueName: item.uniqueName,
name: item.name,
fusionLimit: (item as any).fusionLimit
};
});
}
const getItemListsController: RequestHandler = (_req, res) => {
const mods = reduceItems(items.filter(item => item.category == "Mods"));
for (const arcane of ExportArcanes) {
mods.push({
uniqueName: arcane.uniqueName,
name: getEnglishString(arcane.name)
});
}
res.json({
warframes: reduceItems(warframes),
weapons: reduceItems(weapons.filter(item => item.productCategory != "OperatorAmps")),
miscitems: reduceItems(
items.filter(item => item.category == "Misc" || item.category == "Resources" || item.category == "Fish")
),
mods,
badItems
});
};
export { getItemListsController };