From b6bc983f086cb2bd6a2ea73e35a8ee92aa45b2a3 Mon Sep 17 00:00:00 2001 From: liuyi Date: Mon, 16 Jun 2025 19:26:40 +0800 Subject: [PATCH] add swagger --- src/modules/content/constants.ts | 21 +++++++++++++++++ .../controllers/category.controller.ts | 6 +++-- .../content/controllers/tag.controller.ts | 6 +++-- src/modules/content/dtos/category.dto.ts | 19 --------------- src/modules/content/dtos/tag.dto.ts | 23 +------------------ src/modules/database/constants.ts | 15 ++++++++++++ 6 files changed, 45 insertions(+), 45 deletions(-) diff --git a/src/modules/content/constants.ts b/src/modules/content/constants.ts index c91b47e..c20e45d 100644 --- a/src/modules/content/constants.ts +++ b/src/modules/content/constants.ts @@ -1,13 +1,34 @@ export enum PostBodyType { + /** + * HTML格式 + */ HTML = 'html', + /** + * Markdown格式 + */ MD = 'markdown', } export enum PostOrder { + /** + * 最新创建 + */ CREATED = 'createdAt', + /** + * 最新创建 + */ UPDATED = 'updatedAt', + /** + * 最新发布 + */ PUBLISHED = 'publishedAt', + /** + * 评论数量 + */ COMMENTCOUNT = 'commentCount', + /** + * 自定义排序 + */ CUSTOM = 'custom', } diff --git a/src/modules/content/controllers/category.controller.ts b/src/modules/content/controllers/category.controller.ts index 534424d..60c0ea8 100644 --- a/src/modules/content/controllers/category.controller.ts +++ b/src/modules/content/controllers/category.controller.ts @@ -15,8 +15,10 @@ import { ApiTags } from '@nestjs/swagger'; import { Depends } from '@/modules/restful/decorators/depend.decorator'; +import { PaginateDto } from '@/modules/restful/dtos/paginate.dto'; + import { ContentModule } from '../content.module'; -import { CreateCategoryDto, QueryCategoryDto, UpdateCategoryDto } from '../dtos/category.dto'; +import { CreateCategoryDto, UpdateCategoryDto } from '../dtos/category.dto'; import { CategoryService } from '../services'; @ApiTags('Category Operate') @@ -42,7 +44,7 @@ export class CategoryController { @SerializeOptions({ groups: ['category-list'] }) async list( @Query() - options: QueryCategoryDto, + options: PaginateDto, ) { return this.service.paginate(options); } diff --git a/src/modules/content/controllers/tag.controller.ts b/src/modules/content/controllers/tag.controller.ts index b5b24cb..4fb25af 100644 --- a/src/modules/content/controllers/tag.controller.ts +++ b/src/modules/content/controllers/tag.controller.ts @@ -15,8 +15,10 @@ import { DeleteDto } from '@/modules/content/dtos/delete.dto'; import { Depends } from '@/modules/restful/decorators/depend.decorator'; +import { PaginateDto } from '@/modules/restful/dtos/paginate.dto'; + import { ContentModule } from '../content.module'; -import { CreateTagDto, QueryTagDto, UpdateTagDto } from '../dtos/tag.dto'; +import { CreateTagDto, UpdateTagDto } from '../dtos/tag.dto'; import { TagService } from '../services'; @Depends(ContentModule) @@ -28,7 +30,7 @@ export class TagController { @SerializeOptions({}) async list( @Query() - options: QueryTagDto, + options: PaginateDto, ) { return this.service.paginate(options); } diff --git a/src/modules/content/dtos/category.dto.ts b/src/modules/content/dtos/category.dto.ts index b0b1b3c..caa8c1a 100644 --- a/src/modules/content/dtos/category.dto.ts +++ b/src/modules/content/dtos/category.dto.ts @@ -16,28 +16,9 @@ import { DtoValidation } from '@/modules/core/decorator/dto.validation.decorator import { IsDataExist } from '@/modules/database/constraints/data.exist.constraint'; import { IsTreeUnique } from '@/modules/database/constraints/tree.unique.constraint'; import { IsTreeUniqueExist } from '@/modules/database/constraints/tree.unique.exist.constraint'; -import { PaginateOptions } from '@/modules/database/types'; import { CategoryEntity } from '../entities'; -@DtoValidation({ type: 'query' }) -export class QueryCategoryDto implements PaginateOptions { - @Transform(({ value }) => toNumber(value)) - @Min(1, { always: true, message: 'The current page must be greater than 1.' }) - @IsInt() - @IsOptional() - page = 1; - - @Transform(({ value }) => toNumber(value)) - @Min(1, { - always: true, - message: 'The number of data displayed per page must be greater than 1.', - }) - @IsInt() - @IsOptional() - limit = 10; -} - @DtoValidation({ groups: ['create'] }) export class CreateCategoryDto { @IsTreeUnique(CategoryEntity, { diff --git a/src/modules/content/dtos/tag.dto.ts b/src/modules/content/dtos/tag.dto.ts index 6b411f0..0aac4f1 100644 --- a/src/modules/content/dtos/tag.dto.ts +++ b/src/modules/content/dtos/tag.dto.ts @@ -1,34 +1,13 @@ import { PartialType } from '@nestjs/swagger'; -import { Transform } from 'class-transformer'; -import { IsDefined, IsInt, IsNotEmpty, IsOptional, IsUUID, MaxLength, Min } from 'class-validator'; -import { toNumber } from 'lodash'; +import { IsDefined, IsNotEmpty, IsOptional, IsUUID, MaxLength } from 'class-validator'; import { DtoValidation } from '@/modules/core/decorator/dto.validation.decorator'; import { IsDataExist } from '@/modules/database/constraints'; import { IsUnique } from '@/modules/database/constraints/unique.constraint'; import { IsUniqueExist } from '@/modules/database/constraints/unique.exist.constraint'; -import { PaginateOptions } from '@/modules/database/types'; import { TagEntity } from '../entities'; -@DtoValidation({ type: 'query' }) -export class QueryTagDto implements PaginateOptions { - @Transform(({ value }) => toNumber(value)) - @Min(1, { always: true, message: 'The current page must be greater than 1.' }) - @IsInt() - @IsOptional() - page = 1; - - @Transform(({ value }) => toNumber(value)) - @Min(1, { - always: true, - message: 'The number of data displayed per page must be greater than 1.', - }) - @IsInt() - @IsOptional() - limit = 10; -} - @DtoValidation({ groups: ['create'] }) export class CreateTagDto { @IsUnique(TagEntity, { groups: ['create'], message: 'The label names are repeated' }) diff --git a/src/modules/database/constants.ts b/src/modules/database/constants.ts index 73596cb..64d5bd3 100644 --- a/src/modules/database/constants.ts +++ b/src/modules/database/constants.ts @@ -17,12 +17,27 @@ export enum SelectTrashMode { } export enum OrderType { + /** + * 升序排序 + */ ASC = 'ASC', + /** + * 降序排序 + */ DESC = 'DESC', } export enum TreeChildrenResolve { + /** + * 子信息删除 + */ DELETE = 'delete', + /** + * 子信息上升层级 + */ UP = 'up', + /** + * 子信息上升到顶层 + */ ROOT = 'root', }