login whit api

This commit is contained in:
2025-10-22 18:39:19 -06:00
parent 802249f89c
commit 3e64e6b04f
3 changed files with 43 additions and 28 deletions
+1 -1
View File
@@ -8,6 +8,6 @@ async function bootstrap() {
app.useGlobalPipes(new ValidationPipe()); app.useGlobalPipes(new ValidationPipe());
await app.listen(process.env.PORT ?? 3000); await app.listen(process.env.PORT ?? 3000);
console.log(`successfully connected at the port ${process.env.PORT}`); console.log(`successfully connected at the port ${process.env.PORT ?? 3000}`);
} }
bootstrap(); bootstrap();
+1 -2
View File
@@ -11,7 +11,6 @@ export class OperationsController {
@Post('abonoKiosco') @Post('abonoKiosco')
depositKiosco(@Body() abonoKiosco: abonoKioscoDto, @Req() req) { depositKiosco(@Body() abonoKiosco: abonoKioscoDto, @Req() req) {
const idPersona = req.user.idPersona; const idPersona = req.user.idPersona;
const token = req.headers.authorization?.split(' ')[1]; return this.operationsService.depositKiosco(abonoKiosco, idPersona);
return this.operationsService.depositKiosco(abonoKiosco, idPersona, token);
} }
} }
+41 -25
View File
@@ -1,8 +1,6 @@
import { Injectable } from '@nestjs/common'; import { Injectable, InternalServerErrorException } from '@nestjs/common';
import axios from 'axios'; import axios from 'axios';
import { AbonoTicketService } from 'src/abono-ticket/abono-ticket.service';
import { PagoKioscoService } from 'src/pago-kiosco/pago-kiosco.service'; import { PagoKioscoService } from 'src/pago-kiosco/pago-kiosco.service';
import { PagoPatronato } from 'src/pago-patronato/entities/pago-patronato.entity';
import { PagoPatronatoService } from 'src/pago-patronato/pago-patronato.service'; import { PagoPatronatoService } from 'src/pago-patronato/pago-patronato.service';
import { PersonaService } from 'src/persona/persona.service'; import { PersonaService } from 'src/persona/persona.service';
import { TransaccionService } from 'src/transaccion/transaccion.service'; import { TransaccionService } from 'src/transaccion/transaccion.service';
@@ -16,11 +14,39 @@ export class OperationsService {
private readonly pagoPatronatoService: PagoPatronatoService, private readonly pagoPatronatoService: PagoPatronatoService,
) {} ) {}
async depositKiosco( async login() {
{ cantidad, idKiosco, transaccion }, try {
idPersona: number, const response = await axios.post(`${process.env.API_AT_URL}/user`, {
token: string, usuario: process.env.USER,
) { password: process.env.PASS,
});
return response.data.access_token;
} catch (error) {
throw new InternalServerErrorException(
'Error al autenticar con API externa',
);
}
}
async addCredit(token: string, data: any) {
try {
const response = await axios.post(
`${process.env.API_AT_URL}/operations/receipt`,
data,
{
headers: { Authorization: `Bearer ${token}` },
},
);
return response.data;
} catch (error) {
throw new InternalServerErrorException(
'Error al registrar crédito en API externa',
);
}
}
async depositKiosco({ cantidad, idKiosco, transaccion }, idPersona: number) {
const today = new Date().toString(); const today = new Date().toString();
const transaction = { const transaction = {
@@ -48,24 +74,14 @@ export class OperationsService {
(await pagoK).idPagoKiosco, (await pagoK).idPagoKiosco,
); );
const res = await axios.post( const token = await this.login();
`${process.env.API_AT_URL}/operations/receipt`,
{
id_cuenta: idPersona,
monto: cantidad,
fecha_recibo: today,
folio_recibo: (await pagoP)?.folio,
},
{
headers: {
Authorization: `Bearer ${token}`,
},
},
);
if (res.status !== 200) { await this.addCredit(token, {
throw new Error('Error al registrar crédito en API externa'); id_cuenta: idPersona,
} monto: cantidad,
fecha_recibo: today,
folio_recibo: (await pagoP)?.folio,
});
return newSaldo; return newSaldo;
} }