Closes #851 Reviewed-on: #2558 Reviewed-by: Sainan <63328889+sainan@users.noreply.github.com> Co-authored-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> Co-committed-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import { getInventory } from "@/src/services/inventoryService";
|
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
|
import { TEquipmentKey } from "@/src/types/inventoryTypes/inventoryTypes";
|
|
import { RequestHandler } from "express";
|
|
|
|
export const abilityOverrideController: RequestHandler = async (req, res) => {
|
|
const accountId = await getAccountIdForRequest(req);
|
|
const request = req.body as IAbilityOverrideRequest;
|
|
if (request.category === "Suits") {
|
|
const inventory = await getInventory(accountId, request.category);
|
|
const item = inventory[request.category].id(request.oid);
|
|
if (item) {
|
|
if (request.action == "set") {
|
|
item.Configs[request.configIndex].AbilityOverride = request.AbilityOverride;
|
|
} else {
|
|
item.Configs[request.configIndex].AbilityOverride = undefined;
|
|
}
|
|
await inventory.save();
|
|
}
|
|
}
|
|
res.end();
|
|
};
|
|
|
|
interface IAbilityOverrideRequest {
|
|
category: TEquipmentKey;
|
|
oid: string;
|
|
action: "set" | "remove";
|
|
configIndex: number;
|
|
AbilityOverride: {
|
|
Ability: string;
|
|
Index: number;
|
|
};
|
|
}
|