Files
hlae-site/backend/src/posts.ts
2026-03-10 11:45:54 +08:00

39 lines
852 B
TypeScript

import { Elysia, t } from 'elysia';
import { prisma } from './prisma';
export const posts = new Elysia({ prefix: '/posts' })
.get('/', async () => {
return await prisma.post.findMany({
include: { user: true },
orderBy: { createdAt: 'desc' }
});
})
.get('/:id', async ({ params: { id } }) => {
return await prisma.post.findUnique({
where: { id },
include: {
user: true,
comments: {
include: {
user: true
},
orderBy: {
createdAt: 'desc'
}
}
}
});
})
.post('/', async ({ body }) => {
return await prisma.post.create({
data: body
});
}, {
body: t.Object({
title: t.String(),
content: t.String(),
userId: t.String(),
published: t.Optional(t.Boolean())
})
});