import { Controller, Post, Patch, Body, Param } from '@nestjs/common' import { UsersService } from './users.service' import { ApiTags, ApiOperation } from '@nestjs/swagger' import { CreateUserDto } from './dto/create-user.dto' import { LoginInputDto } from './dto/login-input.dto' import { ResetPassword } from './dto/reset-password.dto' @Controller('api/users') @ApiTags('Users') export class UsersController { constructor(private readonly usersService: UsersService) {} @Post() @ApiOperation({ summary: '邮箱注册' }) async registerByEmail(@Body() userData: CreateUserDto) { return this.usersService.registerByEmail(userData) } // TODO: 限制调用频率,避免暴力破解 @Post('token') @ApiOperation({ summary: '邮箱登录' }) async loginByEmail(@Body() user: LoginInputDto) { return this.usersService.loginByEmail(user.email, user.password) } @Patch(':id/?field=password') @ApiOperation({ summary: '找回密码' }) async forgetPassword( @Body() payload: ResetPassword, @Param('id') userId: string, ) { return this.usersService.resetPasswordByEmail(payload, userId) } }