feat: 优化部分接口

master
绝弹 2023-08-01 21:07:59 +08:00
parent 7e7b6152f7
commit 8a2a6930ce
8 changed files with 6285 additions and 24 deletions

Binary file not shown.

6255
pnpm-lock.yaml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@ export class PaginationDto {
@IsNumber()
@Min(1)
@Transform(({ value }) => Number(value))
page: number;
page?: number;
/**
*
@ -19,5 +19,5 @@ export class PaginationDto {
@IsNumber()
@Min(1)
@Transform(({ value }) => Number(value))
size: number;
size?: number;
}

View File

@ -1,13 +1,22 @@
import { IsOptional, IsString } from 'class-validator';
export class CreatePermissionDto {
/**
*
* @example
*/
@IsString()
name: string;
/**
*
* @example permission:permission
*/
@IsString()
slug: string;
/**
*
*/
@IsOptional()
@IsString()
description: string;
description?: string;
}

View File

@ -1,9 +1,9 @@
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { CreatePermissionDto } from './dto/create-permission.dto';
import { UpdatePermissionDto } from './dto/update-permission.dto';
import { InjectRepository } from '@nestjs/typeorm';
import { Permission } from './entities/permission.entity';
import { Repository } from 'typeorm';
@Injectable()
export class PermissionService {
@ -23,8 +23,8 @@ export class PermissionService {
return `This action returns a #${id} permission`;
}
update(id: number, updatePermissionDto: UpdatePermissionDto) {
return `This action updates a #${id} permission`;
async update(id: number, updatePermissionDto: UpdatePermissionDto) {
await this.permissionRepository.update(id, updatePermissionDto);
}
remove(id: number) {

View File

@ -1,8 +1,8 @@
import { Injectable } from '@nestjs/common';
import { CreateRoleDto } from './dto/create-role.dto';
import { UpdateRoleDto } from './dto/update-role.dto';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { CreateRoleDto } from './dto/create-role.dto';
import { UpdateRoleDto } from './dto/update-role.dto';
import { Role } from './entities/role.entity';
@Injectable()
@ -19,17 +19,18 @@ export class RoleService {
}
findAll() {
return this.roleRepository.findAndCount({
relations: ['permissions'],
});
return this.roleRepository.findAndCount({ relations: ['permissions'] });
}
findOne(id: number) {
return `This action returns a #${id} role`;
}
update(id: number, updateRoleDto: UpdateRoleDto) {
return `This action updates a #${id} role`;
async update(id: number, updateRoleDto: UpdateRoleDto) {
if (updateRoleDto.permissions) {
delete updateRoleDto.permissions;
}
await this.roleRepository.update(id, updateRoleDto);
}
remove(id: number) {

View File

@ -1,9 +1,9 @@
import { PaginationDto } from '@/features/pagination';
import { IntersectionType } from '@nestjs/swagger';
import { IsOptional, IsString } from 'class-validator';
import { PaginationDto } from '@/features/pagination';
export class FindUserDto extends IntersectionType(PaginationDto) {
@IsOptional()
@IsString()
nickname: string;
nickname?: string;
}

View File

@ -1,13 +1,11 @@
import { BaseController } from '@/features/base';
import { Respond } from '@/features/response';
import { Body, Controller, Delete, Get, Param, Patch, Post, Query, Version } from '@nestjs/common';
import { ApiOkResponse, ApiOperation, ApiTags } from '@nestjs/swagger';
import { Respond } from '@/features/response';
import { BaseController } from '@/features/base';
import { CreateUserDto, UpdateUserDto } from './dto';
import { FindUserDto } from './dto/find-user.dto';
import { User } from './entities';
import { UserService } from './user.service';
import { Permission, PermissionEnum } from '@/features/permission/permission.decorator';
import { Public } from '@/modules/auth/jwt/jwt-decorator';
@ApiTags('user')
@Controller('users')
@ -23,9 +21,7 @@ export class UserController extends BaseController {
}
@Get()
@Public(false)
@Respond(Respond.PAGINATION)
@Permission(PermissionEnum.READ)
@ApiOkResponse({ isArray: true, type: User })
@ApiOperation({ summary: '批量查询', operationId: 'getUsers' })
async findMany(@Query() query: FindUserDto) {