SpaceNinjaServer/src/controllers/api/createGuildController.ts
Sainan d24aac2ab2
Some checks failed
Build / build (22) (push) Successful in 41s
Build / build (20) (push) Has been cancelled
Build Docker image / docker (push) Has been cancelled
Build / build (18) (push) Has been cancelled
feat: clan name discriminators (#1147)
Closes #1145

Reviewed-on: #1147
2025-03-11 10:31:56 -07:00

37 lines
1.1 KiB
TypeScript

import { RequestHandler } from "express";
import { getAccountIdForRequest } from "@/src/services/loginService";
import { getJSONfromString } from "@/src/helpers/stringHelpers";
import { Guild, GuildMember } from "@/src/models/guildModel";
import {
createUniqueClanName,
getGuildClient,
updateInventoryForConfirmedGuildJoin
} from "@/src/services/guildService";
export const createGuildController: RequestHandler = async (req, res) => {
const accountId = await getAccountIdForRequest(req);
const payload = getJSONfromString<ICreateGuildRequest>(String(req.body));
// Create guild on database
const guild = new Guild({
Name: await createUniqueClanName(payload.guildName)
});
await guild.save();
// Create guild member on database
await GuildMember.insertOne({
accountId: accountId,
guildId: guild._id,
status: 0,
rank: 0
});
await updateInventoryForConfirmedGuildJoin(accountId, guild._id);
res.json(await getGuildClient(guild, accountId));
};
interface ICreateGuildRequest {
guildName: string;
}