diff --git a/src/app.module.ts b/src/app.module.ts index 9c76a29..3841901 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -20,6 +20,8 @@ import { Sancion } from './sancion/entities/sancion.entity'; import { OperationsModule } from './Operations/operations.module'; import { Recibo } from './recibo/entities/recibo.entity'; import { ReciboModule } from './recibo/recibo.module'; +import { MesaModule } from './mesa/mesa.module'; +import { Mesa } from './mesa/entities/mesa.entity'; @Module({ imports: [ @@ -47,6 +49,7 @@ import { ReciboModule } from './recibo/recibo.module'; Sancion, Carrera, Recibo, + Mesa, ], synchronize: false, //Never change to true in production! }), @@ -60,9 +63,10 @@ import { ReciboModule } from './recibo/recibo.module'; AlumnoSancionModule, OperationsModule, ReciboModule, + MesaModule, ], controllers: [AppController], providers: [AppService], }) export class AppModule {} -//IO \ No newline at end of file +//IO diff --git a/src/mesa/dto/create-mesa.dto.ts b/src/mesa/dto/create-mesa.dto.ts new file mode 100644 index 0000000..9b373a6 --- /dev/null +++ b/src/mesa/dto/create-mesa.dto.ts @@ -0,0 +1 @@ +export class CreateMesaDto {} diff --git a/src/mesa/dto/update-mesa.dto.ts b/src/mesa/dto/update-mesa.dto.ts new file mode 100644 index 0000000..67632eb --- /dev/null +++ b/src/mesa/dto/update-mesa.dto.ts @@ -0,0 +1,7 @@ +import { IsBoolean, IsNotEmpty } from 'class-validator'; + +export class UpdateMesaDto { + @IsNotEmpty() + @IsBoolean() + activo: boolean; +} diff --git a/src/mesa/entities/mesa.entity.ts b/src/mesa/entities/mesa.entity.ts new file mode 100644 index 0000000..6069c05 --- /dev/null +++ b/src/mesa/entities/mesa.entity.ts @@ -0,0 +1,10 @@ +import { Entity, PrimaryColumn, Column } from 'typeorm'; + +@Entity({ name: 'mesa' }) +export class Mesa { + @PrimaryColumn({ name: 'id_mesa', type: 'int' }) + idMesa: number; + + @Column({ name: 'activo', type: 'tinyint', default: 1 }) + activo: boolean; +} diff --git a/src/mesa/mesa.controller.ts b/src/mesa/mesa.controller.ts new file mode 100644 index 0000000..e860d4f --- /dev/null +++ b/src/mesa/mesa.controller.ts @@ -0,0 +1,21 @@ +import { Controller, Body, Patch, Param, Delete, Get } from '@nestjs/common'; +import { MesaService } from './mesa.service'; +import { UpdateMesaDto } from './dto/update-mesa.dto'; + +@Controller('mesa') +export class MesaController { + constructor(private readonly mesaService: MesaService) {} + + @Get('all') + async findAll() { + return this.mesaService.findAll(); + } + + @Patch(':id') + async updateActivo( + @Param('id') id: number, + @Body() updateMesaDto: UpdateMesaDto, + ) { + return this.mesaService.updateActivo(id, updateMesaDto); + } +} diff --git a/src/mesa/mesa.module.ts b/src/mesa/mesa.module.ts new file mode 100644 index 0000000..f326614 --- /dev/null +++ b/src/mesa/mesa.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common'; +import { MesaService } from './mesa.service'; +import { MesaController } from './mesa.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { Mesa } from './entities/mesa.entity'; + +@Module({ + imports: [TypeOrmModule.forFeature([Mesa])], + controllers: [MesaController], + providers: [MesaService], +}) +export class MesaModule {} diff --git a/src/mesa/mesa.service.ts b/src/mesa/mesa.service.ts new file mode 100644 index 0000000..0371cd2 --- /dev/null +++ b/src/mesa/mesa.service.ts @@ -0,0 +1,27 @@ +import { Injectable, NotFoundException } from '@nestjs/common'; +import { UpdateMesaDto } from './dto/update-mesa.dto'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { Mesa } from './entities/mesa.entity'; + +@Injectable() +export class MesaService { + constructor( + @InjectRepository(Mesa) + private readonly mesaRepository: Repository, + ) {} + + async findAll(): Promise { + return await this.mesaRepository.find(); + } + + async updateActivo(id: number, updateMesaDto: UpdateMesaDto) { + const mesa = await this.mesaRepository.findOne({ where: { idMesa: id } }); + if (!mesa) { + throw new NotFoundException(`La mesa no fue encontrada`); + } + + mesa.activo = updateMesaDto.activo; + return this.mesaRepository.save(mesa); + } +}