various improvements
This commit is contained in:
52
server/api/guilds/joinGuild.post.ts
Normal file → Executable file
52
server/api/guilds/joinGuild.post.ts
Normal file → Executable file
@@ -1,22 +1,22 @@
|
||||
import { IInviteCode, IServer } from '~/types'
|
||||
import { PrismaClient } from '@prisma/client'
|
||||
const prisma = new PrismaClient()
|
||||
import { IInviteCode, IServer } from '~/types';
|
||||
import { PrismaClient } from '@prisma/client';
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
if (!event.context.user.authenticated) {
|
||||
event.node.res.statusCode = 401;
|
||||
return {
|
||||
message: 'You must be logged in to view a channel.'
|
||||
}
|
||||
throw createError({
|
||||
statusCode: 401,
|
||||
statusMessage: 'You must be logged in to view a channel.',
|
||||
});
|
||||
}
|
||||
|
||||
const { inviteId } = await readBody(event);
|
||||
|
||||
if (!inviteId) {
|
||||
event.node.res.statusCode = 400;
|
||||
return {
|
||||
message: 'A inviteId is required'
|
||||
}
|
||||
throw createError({
|
||||
statusCode: 400,
|
||||
statusMessage: 'A inviteId is required',
|
||||
});
|
||||
}
|
||||
|
||||
const invite = await prisma.inviteCode.findFirst({
|
||||
@@ -43,19 +43,19 @@ export default defineEventHandler(async (event) => {
|
||||
}) as IInviteCode | null;
|
||||
|
||||
if (!invite) {
|
||||
event.node.res.statusCode = 404;
|
||||
return {
|
||||
message: `Invite with id "${inviteId}" not found`
|
||||
}
|
||||
throw createError({
|
||||
statusCode: 404,
|
||||
statusMessage: `Invite with id "${inviteId}" not found`,
|
||||
});
|
||||
}
|
||||
|
||||
const userInServer = invite.server.participants.find((e) => e.id === event.context.user.id);
|
||||
|
||||
if (userInServer) {
|
||||
event.node.res.statusCode = 409;
|
||||
return {
|
||||
message: `You are already in that server.`
|
||||
}
|
||||
throw createError({
|
||||
statusCode: 409,
|
||||
statusMessage: 'You are already in that server.',
|
||||
});
|
||||
}
|
||||
|
||||
// TODO: check if invite is valid
|
||||
@@ -101,16 +101,16 @@ export default defineEventHandler(async (event) => {
|
||||
}
|
||||
}
|
||||
}
|
||||
}) as unknown as IServer
|
||||
}) as unknown as IServer;
|
||||
|
||||
if (!server) {
|
||||
event.node.res.statusCode = 404;
|
||||
return {
|
||||
message: `Channel with id "${event.context.params.id}" not found`
|
||||
}
|
||||
throw createError({
|
||||
statusCode: 404,
|
||||
statusMessage: `Channel with id "${event.context.params?.id}" not found`,
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
server
|
||||
}
|
||||
})
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user