20 lines
774 B
TypeScript
20 lines
774 B
TypeScript
import { eq } from 'drizzle-orm';
|
|
import useDatabase from '~/composables/useDatabase';
|
|
|
|
export default defineEventHandler(async (e) => {
|
|
const db = useDatabase();
|
|
|
|
const session = await getUserSession(e);
|
|
|
|
if(!session || !session.user) return setResponseStatus(e, 401);
|
|
|
|
const data = db.query.campaignTable.findMany({
|
|
with: {
|
|
members: { with: { member: { columns: { username: true, id: true } } }, columns: { } },
|
|
characters: { where: ({ id }) => eq(id, session.user!.id), columns: { character: true } },
|
|
owner: { columns: { username: true, id: true } },
|
|
},
|
|
}).sync();
|
|
|
|
return data.filter(e => e.owner.id === session.user!.id || e.members.find(e => e.member?.id === session.user!.id));
|
|
}); |