@opentiny/tiny-toolkit-pro
Version:
TinyPro Vue:开箱即用、前后端分离的 Vue 后台管理模板
93 lines (87 loc) • 2.7 kB
text/typescript
import {
Body,
Controller,
DefaultValuePipe,
Delete,
Get,
HttpException,
HttpStatus,
Param,
ParseArrayPipe,
ParseEnumPipe,
ParseIntPipe,
Patch,
Post,
Put,
Query,
Req,
} from '@nestjs/common';
import { UserService } from './user.service';
import { CreateUserDto } from './dto/create-user.dto';
import { Permission } from '../public/permission.decorator';
import { UpdateUserDto } from './dto/update-user.dto';
import { PaginationQueryDto } from './dto/pagination-query.dto';
import { UpdatePwdAdminDto } from './dto/update-pwd-admin.dto';
import { UpdatePwdUserDto } from './dto/update-pwd-user.dto';
import { I18n, I18nContext } from 'nestjs-i18n';
import { I18nTranslations } from '../.generate/i18n.generated';
import { Reject } from '../public/reject.decorator';
('user')
export class UserController {
constructor(private readonly userService: UserService) {}
()
('reg')
('user::add')
async register(() body: CreateUserDto) {
return this.userService.create(body, false);
}
('/info/:email?')
async getUserInfo(
() i18n: I18nContext<I18nTranslations>,
() request: Request & RequestUser,
('email') email?: string
) {
const _email = email ? email : request.user.email;
if (!_email) {
throw new HttpException(
i18n.t('exception.common.unauth', { lang: I18nContext.current().lang }),
HttpStatus.UNAUTHORIZED
);
}
return this.userService.getUserInfo(_email, ['role', 'role.permission']);
}
()
('/:email')
('user::remove')
async delUser(('email') email: string) {
return this.userService.deleteUser(email);
}
()
('/update')
('user::update')
async UpdateUser(() body: UpdateUserDto) {
return this.userService.updateUserInfo(body);
}
()
('user::query')
async getAllUser(
() paginationQuery: PaginationQueryDto,
('name') name?: string,
('role', new DefaultValuePipe([]), ParseArrayPipe) role?: number[],
('email') email?: string
) {
return this.userService.getAllUser(paginationQuery, name, role, email);
}
()
('/admin/updatePwd')
('user::password::force-update')
async updatePwdAdmin(() body: UpdatePwdAdminDto) {
return this.userService.updatePwdAdmin(body);
}
()
('/updatePwd')
('user::update')
async updatePwdUser(() body: UpdatePwdUserDto) {
return this.userService.updatePwdUser(body);
}
}