|
@@ -25,29 +25,40 @@ export class PostController {
|
|
|
|
|
|
@Get('/list')
|
|
@Get('/list')
|
|
async getAllPosts(
|
|
async getAllPosts(
|
|
- @Query('length') take: number = 10,
|
|
|
|
- @Query('start') skip: number = 0,
|
|
|
|
|
|
+ @Query('length') take: number | string,
|
|
|
|
+ @Query('start') skip: number | string,
|
|
) {
|
|
) {
|
|
|
|
+ take = Number(take);
|
|
|
|
+ skip = Number(skip);
|
|
|
|
+ if (isNaN(take) || isNaN(skip)) {
|
|
|
|
+ return {
|
|
|
|
+ code: 400,
|
|
|
|
+ msg: 'Invalid length or start',
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ const query = {
|
|
|
|
+ skip,
|
|
|
|
+ take,
|
|
|
|
+ select: {
|
|
|
|
+ id: true,
|
|
|
|
+ title: true,
|
|
|
|
+ createdAt: true,
|
|
|
|
+ updatedAt: true,
|
|
|
|
+ tags: {
|
|
|
|
+ select: {
|
|
|
|
+ name: true,
|
|
|
|
+ id: true,
|
|
|
|
+ color: true,
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ };
|
|
|
|
+
|
|
const prisma = this.datasource.getPrisma();
|
|
const prisma = this.datasource.getPrisma();
|
|
return {
|
|
return {
|
|
code: 200,
|
|
code: 200,
|
|
- data: await prisma.post.findMany({
|
|
|
|
- skip: Number(skip),
|
|
|
|
- take: Number(take),
|
|
|
|
- select: {
|
|
|
|
- id: true,
|
|
|
|
- title: true,
|
|
|
|
- createdAt: true,
|
|
|
|
- updatedAt: true,
|
|
|
|
- tags: {
|
|
|
|
- select: {
|
|
|
|
- name: true,
|
|
|
|
- id: true,
|
|
|
|
- color: true,
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- }),
|
|
|
|
|
|
+ data: await prisma.post.findMany(query),
|
|
};
|
|
};
|
|
}
|
|
}
|
|
|
|
|