Todos los datos de Alai para agrupar

This commit is contained in:
2026-05-07 16:19:18 +02:00
parent c4e4d87303
commit 08c972e720
6 changed files with 48 additions and 7 deletions

View File

@@ -23,7 +23,7 @@ http:
runtime: runtime:
variables: variables:
- name: subscription - name: subscription
value: "" value: asdasdasd
settings: settings:
encodeUrl: true encodeUrl: true

View File

@@ -6,8 +6,8 @@ ALAI_API_URL=https://wsaccess.alaisecure.com/bssrest
ALAI_CERTIFICATES_DIR=./certificates/ ALAI_CERTIFICATES_DIR=./certificates/
ALAI_CERTIFICATE_NAME=wsaccess_alaisecure_com_cert_client_new.p12 ALAI_CERTIFICATE_NAME=wsaccess_alaisecure_com_cert_client_new.p12
ALAI_CERTIFICATE_PASSWORD=iHaaek+zyzWz6cH6rg== ALAI_CERTIFICATE_PASSWORD=iHaaek+zyzWz6cH6rg==
ALAI_USERNAME=infosavefamily ALAI_USERNAME=palomaibanez
ALAI_PASSWORD=infosavefamily ALAI_PASSWORD=palomaibanez123
ALAI_BRANDID=savefamily ALAI_BRANDID=savefamily
ALAI_PACKAGE=Tarifa_250MB_100MIN_5SMS ALAI_PACKAGE=Tarifa_250MB_100MIN_5SMS

View File

@@ -149,7 +149,8 @@ export class SimAlaiController {
// TODO: Automatizar la paginacion // TODO: Automatizar la paginacion
//const usecaseRes = this.uscases.selectMany({ iccid }) //const usecaseRes = this.uscases.selectMany({ iccid })
} else { } else {
const usecaseRes = await this.uscases.selectOne(iccid) //const usecaseRes = await this.uscases.selectOne(iccid)
const usecaseRes = await this.uscases.selectCompleteSim(iccid)
if (usecaseRes.error != undefined) { if (usecaseRes.error != undefined) {
res.status(500).json(usecaseRes) res.status(500).json(usecaseRes)
return; return;

View File

@@ -8,12 +8,14 @@
* - Control de errores más preciso * - Control de errores más preciso
* *
*/ */
import { AlaiAPI } from "#domain/AlaiAPI.js";
import { AlaiRepository } from "#infrastructure/AlaiRepository.js"; import { AlaiRepository } from "#infrastructure/AlaiRepository.js";
import { ConsumeMessage } from "amqplib"; import { ConsumeMessage } from "amqplib";
import { ErrorOrderDTO, FinishOrderDTO, UpdateOrderDTO } from "sim-shared/domain/Order.js"; import { ErrorOrderDTO, FinishOrderDTO, UpdateOrderDTO } from "sim-shared/domain/Order.js";
import { Result } from "sim-shared/domain/Result.js"; import { Result } from "sim-shared/domain/Result.js";
import { HttpClient } from "sim-shared/infrastructure/HTTPClient.js"; import { HttpClient } from "sim-shared/infrastructure/HTTPClient.js";
import { OrderRepository } from "sim-shared/infrastructure/OrderRepository.js"; import { OrderRepository } from "sim-shared/infrastructure/OrderRepository.js";
import { isOmittedExpression } from "typescript";
export class SimAlaiUsecases { export class SimAlaiUsecases {
constructor( constructor(
@@ -219,4 +221,42 @@ export class SimAlaiUsecases {
const sim = await this.alaiRepository.getSimByICCID(iccid) const sim = await this.alaiRepository.getSimByICCID(iccid)
return sim return sim
} }
/**
* Para sacar los datos de una liena hay que sacar sim -> subscripcion -> imei
* son 3 llamadas distintas.
*/
public async selectCompleteSim(iccid: string): Promise<Result<string, {
sim: AlaiAPI.Sim,
subscription: AlaiAPI.Subscription,
imei: AlaiAPI.GetImeiSubscriptionDTO
}>> {
const sim = await this.alaiRepository.getSimByICCID(iccid)
if (sim.error != undefined) {
return sim
}
const subscriptionId = sim.data!.subscription.id
const subscription = await this.alaiRepository.getSubscriptionById(subscriptionId)
if (subscription.error != undefined) {
return subscription
}
const imei = await this.alaiRepository.getImeiFromSubscription(subscriptionId)
if (imei.error != undefined) {
return imei
}
return {
data: {
sim: sim.data!,
subscription: subscription.data!,
imei: imei.data!
}
}
}
} }

View File

@@ -176,14 +176,14 @@ export class AlaiRepository {
public async getSubscriptionById(subscriptionId: string) { public async getSubscriptionById(subscriptionId: string) {
const endpoint = `/v1/subscription/${subscriptionId}` const endpoint = `/v1/subscription/${subscriptionId}`
const promReq = this.httpClient.patch<AlaiAPI.Subscription | undefined>(endpoint) const promReq = this.httpClient.get<AlaiAPI.Subscription | undefined>(endpoint)
const res = await this.manageRequest(promReq) const res = await this.manageRequest(promReq)
return res return res
} }
public async getImeiFromSubscription(subscriptionId: string) { public async getImeiFromSubscription(subscriptionId: string) {
const endpoint = `/v1/subscription/${subscriptionId}/imei` const endpoint = `/v1/subscription/${subscriptionId}/imei`
const promReq = this.httpClient.patch<AlaiAPI.GetImeiSubscriptionDTO | undefined>(endpoint) const promReq = this.httpClient.get<AlaiAPI.GetImeiSubscriptionDTO | undefined>(endpoint)
const res = await this.manageRequest(promReq) const res = await this.manageRequest(promReq)
return res return res
} }

View File

@@ -9,6 +9,6 @@ export type CommonSim<T> = {
activation_date?: Date | null, activation_date?: Date | null,
suspension_date?: Date | null, suspension_date?: Date | null,
termination_date?: Date | null, termination_date?: Date | null,
imei: string, imei?: string,
raw: T raw: T
} }