24 lines
1.0 KiB
TypeScript
24 lines
1.0 KiB
TypeScript
import { Request } from "express";
|
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
|
import { getInventory } from "@/src/services/inventoryService";
|
|
import { Guild } from "@/src/models/guildModel";
|
|
import { TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel";
|
|
|
|
export const getGuildForRequest = async (req: Request) => {
|
|
const accountId = await getAccountIdForRequest(req);
|
|
const inventory = await getInventory(accountId);
|
|
return await getGuildForRequestEx(req, inventory);
|
|
};
|
|
|
|
export const getGuildForRequestEx = async (req: Request, inventory: TInventoryDatabaseDocument) => {
|
|
const guildId = req.query.guildId as string;
|
|
if (!inventory.GuildId || inventory.GuildId.toString() != guildId) {
|
|
throw new Error("Account is not in the guild that it has sent a request for");
|
|
}
|
|
const guild = await Guild.findOne({ _id: guildId });
|
|
if (!guild) {
|
|
throw new Error("Account thinks it is in a guild that doesn't exist");
|
|
}
|
|
return guild;
|
|
};
|