fix getVendorInfoController
This commit is contained in:
parent
a4ec3833bf
commit
7ee95ce13f
@ -1,23 +1,60 @@
|
|||||||
import { RequestHandler } from "express";
|
import { RequestHandler } from "express";
|
||||||
import ArchimedeanVendorManifest from "@/static/fixed_responses/getVendorInfo/ArchimedeanVendorManifest.json";
|
import { ExportVendors } from "warframe-public-export-plus";
|
||||||
import MaskSalesmanManifest from "@/static/fixed_responses/getVendorInfo/MaskSalesmanManifest.json";
|
import { IMongoDate, IOid } from "@/src/types/commonTypes";
|
||||||
import ZarimanCommisionsManifestArchimedean from "@/static/fixed_responses/getVendorInfo/ZarimanCommisionsManifestArchimedean.json";
|
import { Types } from "mongoose";
|
||||||
|
import { toMongoDate } from "@/src/helpers/inventoryHelpers";
|
||||||
|
|
||||||
|
export interface VendorInfo {
|
||||||
|
_id: IOid;
|
||||||
|
TypeName: string;
|
||||||
|
ItemManifest: ItemManifestItem[];
|
||||||
|
PropertyTextHash: string;
|
||||||
|
Expiry: IMongoDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ItemManifestItem {
|
||||||
|
StoreItem: string;
|
||||||
|
ItemPrices: ItemManifestItemPrice[];
|
||||||
|
Bin: string;
|
||||||
|
QuantityMultiplier: number;
|
||||||
|
Expiry: IMongoDate;
|
||||||
|
AllowMultipurchase: boolean;
|
||||||
|
Id: IOid;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ItemManifestItemPrice {
|
||||||
|
ItemType: string;
|
||||||
|
ItemCount: number;
|
||||||
|
ProductCategory: string;
|
||||||
|
}
|
||||||
|
|
||||||
export const getVendorInfoController: RequestHandler = (req, res) => {
|
export const getVendorInfoController: RequestHandler = (req, res) => {
|
||||||
switch (req.query.vendor as string) {
|
const vendor = String(req.query.vendor);
|
||||||
case "/Lotus/Types/Game/VendorManifests/Zariman/ArchimedeanVendorManifest":
|
const dateTime = new Date();
|
||||||
res.json(ArchimedeanVendorManifest);
|
dateTime.setDate(dateTime.getDate() + 1);
|
||||||
break;
|
if (vendor in ExportVendors) {
|
||||||
|
const v = ExportVendors[vendor];
|
||||||
case "/Lotus/Types/Game/VendorManifests/Ostron/MaskSalesmanManifest":
|
const result: VendorInfo = {
|
||||||
res.json(MaskSalesmanManifest);
|
_id: { $oid: new Types.ObjectId().toString() },
|
||||||
break;
|
TypeName: vendor,
|
||||||
|
ItemManifest: [],
|
||||||
case "/Lotus/Types/Game/VendorManifests/Zariman/ZarimanCommisionsManifestArchimedean":
|
PropertyTextHash: "DB7BF03C3FE6D0036A4DC30066A9A17E",
|
||||||
res.json(ZarimanCommisionsManifestArchimedean);
|
Expiry: toMongoDate(new Date(dateTime))
|
||||||
break;
|
};
|
||||||
|
v.items.forEach(item => {
|
||||||
default:
|
const i = item.itemPrices[0];
|
||||||
throw new Error(`Unknown vendor: ${req.query.vendor}`);
|
result.ItemManifest.push({
|
||||||
|
StoreItem: item.storeItem,
|
||||||
|
ItemPrices: [{ ItemType: i.ItemType, ItemCount: i.ItemCount, ProductCategory: "MiscItems" }],
|
||||||
|
Bin: "BIN_0",
|
||||||
|
QuantityMultiplier: 1,
|
||||||
|
Expiry: toMongoDate(new Date(dateTime)),
|
||||||
|
AllowMultipurchase: true,
|
||||||
|
Id: { $oid: new Types.ObjectId().toString() }
|
||||||
|
});
|
||||||
|
});
|
||||||
|
res.json({ VendorInfo: result });
|
||||||
|
} else {
|
||||||
|
throw new Error(`Unknown vendor: ${vendor}`);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user