From c1efdbb49f695f314edff504f1fac1138d7999a1 Mon Sep 17 00:00:00 2001 From: Innei Date: Fri, 18 Feb 2022 13:42:01 +0800 Subject: [PATCH] refactor: extract interface --- src/modules/note/note.model.ts | 7 ++--- src/modules/post/post.model.ts | 7 ++--- src/modules/user/user.controller.ts | 29 ++++++--------------- src/shared/interface/paginator.interface.ts | 22 ++++++++++++++-- src/shared/model/base.model.ts | 21 --------------- 5 files changed, 32 insertions(+), 54 deletions(-) diff --git a/src/modules/note/note.model.ts b/src/modules/note/note.model.ts index 6ff1d8de..29672027 100644 --- a/src/modules/note/note.model.ts +++ b/src/modules/note/note.model.ts @@ -11,11 +11,8 @@ import { IsString, ValidateNested, } from 'class-validator' -import { - CountMixed, - Paginator, - WriteBaseModel, -} from '~/shared/model/base.model' +import { Paginator } from '~/shared/interface/paginator.interface' +import { CountMixed, WriteBaseModel } from '~/shared/model/base.model' @modelOptions({ schemaOptions: { id: false, _id: false } }) export class Coordinate { diff --git a/src/modules/post/post.model.ts b/src/modules/post/post.model.ts index 81bd4006..4cca947a 100644 --- a/src/modules/post/post.model.ts +++ b/src/modules/post/post.model.ts @@ -19,11 +19,8 @@ import { IsString, } from 'class-validator' import { Query } from 'mongoose' -import { - CountMixed as Count, - Paginator, - WriteBaseModel, -} from '~/shared/model/base.model' +import { Paginator } from '~/shared/interface/paginator.interface' +import { CountMixed as Count, WriteBaseModel } from '~/shared/model/base.model' import { CategoryModel as Category } from '../category/category.model' function autoPopulateCategory( diff --git a/src/modules/user/user.controller.ts b/src/modules/user/user.controller.ts index 1135d7d2..071e3a87 100644 --- a/src/modules/user/user.controller.ts +++ b/src/modules/user/user.controller.ts @@ -1,15 +1,6 @@ -import { - Body, - Controller, - Get, - HttpCode, - Patch, - Post, - SerializeOptions, - UseGuards, -} from '@nestjs/common' -import { AuthGuard } from '@nestjs/passport' -import { ApiBearerAuth, ApiOperation } from '@nestjs/swagger' +import { Body, Controller, Get, HttpCode, Patch, Post } from '@nestjs/common' +import { ApiOperation } from '@nestjs/swagger' +import { Auth } from '~/common/decorator/auth.decorator' import { HttpCache } from '~/common/decorator/cache.decorator' import { CurrentUser } from '~/common/decorator/current-user.decorator' import { IpLocation, IpRecord } from '~/common/decorator/ip.decorator' @@ -36,9 +27,6 @@ export class UserController { } @Post('register') - @SerializeOptions({ - excludePrefixes: ['password'], - }) @ApiOperation({ summary: '注册' }) async register(@Body() userDto: UserDto) { userDto.name = userDto.name ?? userDto.username @@ -71,17 +59,16 @@ export class UserController { @Get('check_logged') @ApiOperation({ summary: '判断当前 Token 是否有效 ' }) - @ApiBearerAuth() - @HttpCache({ disable: true }) + @Auth() + @HttpCache.disable checkLogged(@IsMaster() isMaster: boolean) { return { ok: +isMaster, isGuest: !isMaster } } @Patch() - @ApiOperation({ summary: '修改主人的信息 ' }) - @ApiBearerAuth() - @UseGuards(AuthGuard('jwt')) - @HttpCache({ disable: true }) + @ApiOperation({ summary: '修改主人的信息' }) + @Auth() + @HttpCache.disable async patchMasterData( @Body() body: UserPatchDto, @CurrentUser() user: UserDocument, diff --git a/src/shared/interface/paginator.interface.ts b/src/shared/interface/paginator.interface.ts index 647ee358..a1dc68f2 100644 --- a/src/shared/interface/paginator.interface.ts +++ b/src/shared/interface/paginator.interface.ts @@ -1,6 +1,24 @@ -import { Paginator } from '../model/base.model' - export interface Pagination { data: T[] pagination: Paginator } +export class Paginator { + /** + * 总条数 + */ + readonly total: number + /** + * 一页多少条 + */ + readonly size: number + /** + * 当前页 + */ + readonly currentPage: number + /** + * 总页数 + */ + readonly totalPage: number + readonly hasNextPage: boolean + readonly hasPrevPage: boolean +} diff --git a/src/shared/model/base.model.ts b/src/shared/model/base.model.ts index 9b8e7bf2..e01df1c5 100644 --- a/src/shared/model/base.model.ts +++ b/src/shared/model/base.model.ts @@ -40,27 +40,6 @@ export class BaseModel { } } -export class Paginator { - /** - * 总条数 - */ - readonly total: number - /** - * 一页多少条 - */ - readonly size: number - /** - * 当前页 - */ - readonly currentPage: number - /** - * 总页数 - */ - readonly totalPage: number - readonly hasNextPage: boolean - readonly hasPrevPage: boolean -} - @modelOptions({ schemaOptions: { _id: false }, })