nest-project/src/users/users.controller.ts
2023-02-23 17:09:41 +08:00

35 lines
1.1 KiB
TypeScript

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)
}
}