SpaceNinjaServer/src/controllers/api/inventoryController.ts

39 lines
1.4 KiB
TypeScript
Raw Normal View History

/* eslint-disable @typescript-eslint/no-misused-promises */
import { toInventoryResponse } from "@/src/helpers/inventoryHelpers";
import { Inventory } from "@/src/models/inventoryModels/inventoryModel";
2023-05-23 20:53:26 -04:00
import { Request, RequestHandler, Response } from "express";
2023-06-05 04:16:49 +08:00
import config from "@/config.json";
import testMissions from "@/static/fixed_responses/testMissions.json";
import testQuestKeys from "@/static/fixed_responses/testQuestKeys.json";
import { ILoadoutDatabase } from "@/src/types/saveLoadoutTypes";
2023-05-19 15:22:48 -03:00
const inventoryController: RequestHandler = async (request: Request, response: Response) => {
const accountId = request.query.accountId;
if (!accountId) {
response.status(400).json({ error: "accountId was not provided" });
return;
}
const inventory = await Inventory.findOne({ accountOwnerId: accountId }).populate<{
LoadOutPresets: ILoadoutDatabase;
}>("LoadOutPresets");
if (!inventory) {
response.status(400).json({ error: "inventory was undefined" });
return;
}
2024-01-25 14:49:45 +01:00
//TODO: make a function that converts from database representation to client
const inventoryJSON = inventory.toJSON();
2023-09-11 13:20:07 +02:00
const inventoryResponse = toInventoryResponse(inventoryJSON);
2023-09-11 13:20:07 +02:00
if (config.testMission) inventoryResponse.Missions = testMissions;
if (config.testQuestKey) inventoryResponse.QuestKeys = testQuestKeys;
2023-06-05 04:16:49 +08:00
2023-09-11 13:20:07 +02:00
response.json(inventoryResponse);
2023-05-19 15:22:48 -03:00
};
2023-06-02 00:20:49 -03:00
export { inventoryController };