added operations and EP abonoKiosco
This commit is contained in:
@@ -8,6 +8,7 @@ import { TransaccionModule } from './transaccion/transaccion.module';
|
||||
import { AbonoTicketModule } from './abono-ticket/abono-ticket.module';
|
||||
import { PagoKioscoModule } from './pago-kiosco/pago-kiosco.module';
|
||||
import { KioscoModule } from './kiosco/kiosco.module';
|
||||
import { OperationsModule } from './operations/operations.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
@@ -34,6 +35,7 @@ import { KioscoModule } from './kiosco/kiosco.module';
|
||||
AbonoTicketModule,
|
||||
PagoKioscoModule,
|
||||
KioscoModule,
|
||||
OperationsModule,
|
||||
],
|
||||
controllers: [AppController],
|
||||
providers: [AppService],
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
import { IsNumber } from 'class-validator';
|
||||
|
||||
export class abonoKioscoDto {
|
||||
@IsNumber()
|
||||
monto: number;
|
||||
|
||||
@IsNumber()
|
||||
idKiosco: number;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { OperationsController } from './operations.controller';
|
||||
import { OperationsService } from './operations.service';
|
||||
|
||||
describe('OperationsController', () => {
|
||||
let controller: OperationsController;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
controllers: [OperationsController],
|
||||
providers: [OperationsService],
|
||||
}).compile();
|
||||
|
||||
controller = module.get<OperationsController>(OperationsController);
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(controller).toBeDefined();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,16 @@
|
||||
import { Controller, Post, Body, UseGuards, Req } from '@nestjs/common';
|
||||
import { OperationsService } from './operations.service';
|
||||
import { abonoKioscoDto } from './dto/create-operation.dto';
|
||||
import { JwtAuthGuard } from 'src/persona/jwt.guard';
|
||||
|
||||
@Controller('operations')
|
||||
export class OperationsController {
|
||||
constructor(private readonly operationsService: OperationsService) {}
|
||||
|
||||
@UseGuards(JwtAuthGuard)
|
||||
@Post('abonoKiosco')
|
||||
depositKiosco(@Body() abonoKiosco: abonoKioscoDto, @Req() req) {
|
||||
const idPersona = req.user.idPersona;
|
||||
return this.operationsService.depositKiosco(abonoKiosco, idPersona);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { OperationsService } from './operations.service';
|
||||
import { OperationsController } from './operations.controller';
|
||||
import { TransaccionModule } from 'src/transaccion/transaccion.module';
|
||||
import { PagoKioscoModule } from 'src/pago-kiosco/pago-kiosco.module';
|
||||
import { PersonaModule } from 'src/persona/persona.module';
|
||||
|
||||
@Module({
|
||||
imports: [TransaccionModule, PagoKioscoModule, PersonaModule],
|
||||
controllers: [OperationsController],
|
||||
providers: [OperationsService],
|
||||
})
|
||||
export class OperationsModule {}
|
||||
@@ -0,0 +1,18 @@
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { OperationsService } from './operations.service';
|
||||
|
||||
describe('OperationsService', () => {
|
||||
let service: OperationsService;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
providers: [OperationsService],
|
||||
}).compile();
|
||||
|
||||
service = module.get<OperationsService>(OperationsService);
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(service).toBeDefined();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,40 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { PagoKioscoService } from 'src/pago-kiosco/pago-kiosco.service';
|
||||
import { PersonaService } from 'src/persona/persona.service';
|
||||
import { TransaccionService } from 'src/transaccion/transaccion.service';
|
||||
|
||||
@Injectable()
|
||||
export class OperationsService {
|
||||
constructor(
|
||||
private readonly transaccionService: TransaccionService,
|
||||
private readonly pagoKioscoService: PagoKioscoService,
|
||||
private readonly personaService: PersonaService,
|
||||
) {}
|
||||
|
||||
async depositKiosco({ monto, idKiosco }, idPersona: number) {
|
||||
const today = new Date().toString();
|
||||
|
||||
const transaccion = {
|
||||
idNombreTransaccion: 1,
|
||||
idPersona,
|
||||
fecha: today,
|
||||
tipoTransaccion: 2,
|
||||
};
|
||||
|
||||
const responseTransaccion = this.transaccionService.create(transaccion);
|
||||
|
||||
const pagoKiosco = {
|
||||
idTransaccion: (await responseTransaccion).idTransaccion,
|
||||
monto,
|
||||
fecha: today,
|
||||
idKiosco,
|
||||
pagoPatronatoCreado: false,
|
||||
};
|
||||
|
||||
this.pagoKioscoService.create(pagoKiosco);
|
||||
|
||||
const newSaldo = this.personaService.updateSaldo(idPersona, monto);
|
||||
|
||||
return newSaldo;
|
||||
}
|
||||
}
|
||||
@@ -1 +1,18 @@
|
||||
export class CreatePagoKioscoDto {}
|
||||
import { IsBoolean, IsDateString, IsNumber } from 'class-validator';
|
||||
|
||||
export class CreatePagoKioscoDto {
|
||||
@IsNumber()
|
||||
idTransaccion: number;
|
||||
|
||||
@IsNumber()
|
||||
monto: number;
|
||||
|
||||
@IsDateString()
|
||||
fecha: string;
|
||||
|
||||
@IsNumber()
|
||||
idKiosco: number;
|
||||
|
||||
@IsBoolean()
|
||||
pagoPatronatoCreado: boolean;
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
import { PartialType } from '@nestjs/mapped-types';
|
||||
import { CreatePagoKioscoDto } from './create-pago-kiosco.dto';
|
||||
|
||||
export class UpdatePagoKioscoDto extends PartialType(CreatePagoKioscoDto) {}
|
||||
@@ -9,7 +9,6 @@ import {
|
||||
} from '@nestjs/common';
|
||||
import { PagoKioscoService } from './pago-kiosco.service';
|
||||
import { CreatePagoKioscoDto } from './dto/create-pago-kiosco.dto';
|
||||
import { UpdatePagoKioscoDto } from './dto/update-pago-kiosco.dto';
|
||||
|
||||
@Controller('pago-kiosco')
|
||||
export class PagoKioscoController {
|
||||
|
||||
@@ -8,5 +8,6 @@ import { PagoKiosco } from './entities/pago-kiosco.entity';
|
||||
imports: [TypeOrmModule.forFeature([PagoKiosco])],
|
||||
controllers: [PagoKioscoController],
|
||||
providers: [PagoKioscoService],
|
||||
exports: [PagoKioscoService],
|
||||
})
|
||||
export class PagoKioscoModule {}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { CreatePagoKioscoDto } from './dto/create-pago-kiosco.dto';
|
||||
import { UpdatePagoKioscoDto } from './dto/update-pago-kiosco.dto';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { PagoKiosco } from './entities/pago-kiosco.entity';
|
||||
import { Repository } from 'typeorm';
|
||||
|
||||
@@ -62,7 +62,6 @@ export class PersonaController {
|
||||
@Get('saldo')
|
||||
async saldo(@Req() req) {
|
||||
const idPersona = req.user.idPersona;
|
||||
|
||||
return this.personaService.saldo(idPersona);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,5 +27,6 @@ import { JwtStrategy } from './jwt.strategy';
|
||||
],
|
||||
controllers: [PersonaController],
|
||||
providers: [PersonaService, GoogleStrategy, JwtStrategy],
|
||||
exports: [PersonaService],
|
||||
})
|
||||
export class PersonaModule {}
|
||||
|
||||
@@ -99,11 +99,11 @@ export class PersonaService {
|
||||
async updateSaldo(idPersona: number, monto: number) {
|
||||
const persona = await this.findById(idPersona);
|
||||
|
||||
const nuevoSaldo = (persona.cantidadCuenta || 0) + monto;
|
||||
const newSaldo = (persona.cantidadCuenta || 0) + monto;
|
||||
await this.personaRepository.update(idPersona, {
|
||||
cantidadCuenta: nuevoSaldo,
|
||||
cantidadCuenta: newSaldo,
|
||||
});
|
||||
return { statusCode: 200, message: `tu saldo es ${nuevoSaldo}` };
|
||||
return newSaldo;
|
||||
}
|
||||
}
|
||||
//IO
|
||||
|
||||
@@ -8,5 +8,6 @@ import { Transaccion } from './entities/transaccion.entity';
|
||||
imports: [TypeOrmModule.forFeature([Transaccion])],
|
||||
controllers: [TransaccionController],
|
||||
providers: [TransaccionService],
|
||||
exports: [TransaccionService],
|
||||
})
|
||||
export class TransaccionModule {}
|
||||
|
||||
@@ -15,10 +15,9 @@ export class TransaccionService {
|
||||
return await this.transaccionRepository.find();
|
||||
}
|
||||
|
||||
async create(createTransaccion: CreateTransaccionDto) {
|
||||
async create(createTransaccion: CreateTransaccionDto): Promise<Transaccion> {
|
||||
const create = this.transaccionRepository.create(createTransaccion);
|
||||
await this.transaccionRepository.save(create);
|
||||
return 'success';
|
||||
return await this.transaccionRepository.save(create);
|
||||
}
|
||||
}
|
||||
//IO
|
||||
|
||||
Reference in New Issue
Block a user