@opentiny/tiny-toolkit-pro
Version:
TinyPro Vue:开箱即用、前后端分离的 Vue 后台管理模板
100 lines (93 loc) • 2.88 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';
export class UserController {
constructor(private readonly userService: UserService) {}
async register( body: CreateUserDto) {
return this.userService.create(body, false);
}
async getUserInfo(
i18n: I18nContext<I18nTranslations>,
request: Request & RequestUser,
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']);
}
async delUser( email: string) {
return this.userService.deleteUser(email);
}
async UpdateUser( body: UpdateUserDto) {
return this.userService.updateUserInfo(body);
}
async getAllUser(
paginationQuery: PaginationQueryDto,
name?: string,
role?: number[],
email?: string
) {
return this.userService.getAllUser(paginationQuery, name, role, email);
}
async updatePwdAdmin( body: UpdatePwdAdminDto) {
return this.userService.updatePwdAdmin(body);
}
async updatePwdUser( body: UpdatePwdUserDto) {
return this.userService.updatePwdUser(body);
}
async batchRemoveUser( emails: string[]) {
return this.userService.batchDeleteUser(emails);
}
}