forked from wangziqi/gongxue-base
修复班级归档查询参数转换
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import { ValidationPipe } from '@nestjs/common';
|
||||
import { ClassesController } from './classes.controller';
|
||||
import { ClassesService } from './classes.service';
|
||||
import { QueryClassDto } from './dto/class.dto';
|
||||
import { OperationLogsService } from '../operation-logs/operation-logs.service';
|
||||
import { NotificationsService } from '../notifications/notifications.service';
|
||||
import { CaslAction, SubjectName } from '../authorization';
|
||||
@@ -94,3 +96,21 @@ describe('ClassesController - class data scope', () => {
|
||||
expect(service.assertClassAccess).toHaveBeenCalledWith(21, 8, false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('QueryClassDto - query transformation', () => {
|
||||
const pipe = new ValidationPipe({ transform: true, whitelist: true, forbidNonWhitelisted: true });
|
||||
|
||||
it.each([
|
||||
['false', false],
|
||||
['0', false],
|
||||
['true', true],
|
||||
['1', true],
|
||||
])('transforms isArchived=%s to %s', async (input, expected) => {
|
||||
await expect(
|
||||
pipe.transform(
|
||||
{ isArchived: input },
|
||||
{ type: 'query', metatype: QueryClassDto, data: undefined },
|
||||
),
|
||||
).resolves.toEqual({ isArchived: expected });
|
||||
});
|
||||
});
|
||||
|
||||
@@ -8,6 +8,8 @@ import {
|
||||
Param,
|
||||
Query,
|
||||
UseGuards,
|
||||
UsePipes,
|
||||
ValidationPipe,
|
||||
Request,
|
||||
Res,
|
||||
} from '@nestjs/common';
|
||||
@@ -45,6 +47,7 @@ const teacherRoleLabels: Record<string, string> = {
|
||||
};
|
||||
|
||||
@UseGuards(JwtAuthGuard)
|
||||
@UsePipes(new ValidationPipe({ transform: true, whitelist: true, forbidNonWhitelisted: true }))
|
||||
@Controller('classes')
|
||||
export class ClassesController {
|
||||
constructor(
|
||||
|
||||
@@ -9,6 +9,7 @@ import {
|
||||
ArrayNotEmpty,
|
||||
ValidateNested,
|
||||
Min,
|
||||
IsBoolean,
|
||||
} from 'class-validator';
|
||||
import { Type, Transform } from 'class-transformer';
|
||||
import { ClassType, ClassStatus, TeacherRoleType } from '../../entities';
|
||||
@@ -160,6 +161,7 @@ export class QueryClassDto {
|
||||
if (value === 'false' || value === '0') return false;
|
||||
return value;
|
||||
})
|
||||
@IsBoolean()
|
||||
isArchived?: boolean;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user