Files
discord-clone/server/api/user/getServers.get.ts
2023-04-20 21:19:22 -05:00

57 lines
932 B
TypeScript
Executable File

import { PrismaClient } from '@prisma/client';
import { IChannel, IServer } from '~/types';
const prisma = new PrismaClient();
export default defineEventHandler(async (event) => {
if (!event.context.user.authenticated) {
throw createError({
statusCode: 401,
statusMessage: 'Unauthenticated',
});
}
const servers = await prisma.server.findMany({
where: {
participants: {
some: {
id: event.context.user.id
}
}
},
select: {
id: true,
name: true,
channels: {
select: {
id: true,
}
},
}
}) as unknown as IServer[] | null;
const dms = await prisma.channel.findMany({
where: {
DM: true,
dmParticipants: {
some: {
id: event.context.user.id
}
}
},
select: {
id: true,
name: true,
DM: true,
dmParticipants: {
select: {
id: true,
username: true
}
}
}
}) as IChannel[] | null;
return {
servers, dms
};
});