serealizer
This commit is contained in:
parent
03a886237f
commit
f91d422d67
34
src/interceptors/serialize.interceptor.ts
Normal file
34
src/interceptors/serialize.interceptor.ts
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import {
|
||||||
|
UseInterceptors,
|
||||||
|
NestInterceptor,
|
||||||
|
ExecutionContext,
|
||||||
|
CallHandler,
|
||||||
|
} from '@nestjs/common';
|
||||||
|
import { Observable } from 'rxjs';
|
||||||
|
import { map } from 'rxjs/operators';
|
||||||
|
import { plainToClass } from 'class-transformer';
|
||||||
|
|
||||||
|
interface ClassConstructor {
|
||||||
|
new (...args: any[]): {};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function Serealize(dto: ClassConstructor) {
|
||||||
|
return UseInterceptors(new SerializeInterceptor(dto));
|
||||||
|
}
|
||||||
|
|
||||||
|
export class SerializeInterceptor implements NestInterceptor {
|
||||||
|
constructor(private dto: any) {}
|
||||||
|
|
||||||
|
intercept(
|
||||||
|
context: ExecutionContext,
|
||||||
|
next: CallHandler<any>,
|
||||||
|
): Observable<any> | Promise<Observable<any>> {
|
||||||
|
return next
|
||||||
|
.handle()
|
||||||
|
.pipe(
|
||||||
|
map((data: any) =>
|
||||||
|
plainToClass(this.dto, data, { excludeExtraneousValues: true }),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -1,14 +1,15 @@
|
|||||||
import { Body, Controller, Get, Post, Query } from '@nestjs/common';
|
import { Body, Controller, Get, Post, Query } from '@nestjs/common';
|
||||||
import { ModuloService } from './modulo.service';
|
import { ModuloService } from './modulo.service';
|
||||||
|
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||||
import { IdInstitucionDto } from '../dto/id-institucion.dto';
|
import { IdInstitucionDto } from '../dto/id-institucion.dto';
|
||||||
import { CrearModuloDto } from './dto/crear-modulo.dto';
|
import { CrearModuloDto } from './dto/crear-modulo.dto';
|
||||||
@Controller('modulo')
|
@Controller('modulo')
|
||||||
export class ModuloController {
|
export class ModuloController {
|
||||||
constructor(private moduloService: ModuloService) {}
|
constructor(private moduloService: ModuloService) {}
|
||||||
|
|
||||||
@Get()
|
@Get("modulos")
|
||||||
get(@Query() query: IdInstitucionDto) {
|
get(@Query() query: IdInstitucionDto) {
|
||||||
return this.moduloService.findByIdInstitucion(Number(query.id_institucion));
|
return this.moduloService.findAllByIdInstitucion(Number(query.id_institucion));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Post()
|
@Post()
|
||||||
|
@ -9,14 +9,13 @@ export class ModuloService {
|
|||||||
@InjectRepository(Modulo) private repository: Repository<Modulo>,
|
@InjectRepository(Modulo) private repository: Repository<Modulo>,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
findByIdInstitucion(id_institucion: number) {
|
findAllByIdInstitucion(id_institucion: number) {
|
||||||
return this.repository.find({
|
return this.repository.find({
|
||||||
where: { institucion: id_institucion },
|
where: { institucion: { id_institucion: 1 } },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
create(attrs: Partial<Modulo>) {
|
create(attrs: Partial<Modulo>) {
|
||||||
console.log(attrs);
|
|
||||||
return this.repository
|
return this.repository
|
||||||
.findOne({
|
.findOne({
|
||||||
where: { institucion: attrs.institucion, modulo: attrs.modulo },
|
where: { institucion: attrs.institucion, modulo: attrs.modulo },
|
||||||
|
Loading…
Reference in New Issue
Block a user