diff --git a/packages/sim-consumidor-alai/aplication/SimAlai.usecases.ts b/packages/sim-consumidor-alai/aplication/SimAlai.usecases.ts index 2373b6c..5aaa000 100644 --- a/packages/sim-consumidor-alai/aplication/SimAlai.usecases.ts +++ b/packages/sim-consumidor-alai/aplication/SimAlai.usecases.ts @@ -123,7 +123,7 @@ export class SimAlaiUsecases { } } - const subscriptionId = sim.data.subscription.id + const subscriptionId = sim.data.subscription!.id if (subscriptionId == undefined) { return { @@ -170,7 +170,7 @@ export class SimAlaiUsecases { } // TODO: Controlar sim no encotrada (No deberia pasar) - const subscriptionId = preactivatedSim.data!.subscription.id + const subscriptionId = preactivatedSim.data!.subscription!.id if (args.externalId) { const externalIdAdded = await this.alaiRepository.changeExternalId(subscriptionId, args.externalId) if (externalIdAdded.error != undefined) { @@ -195,7 +195,7 @@ export class SimAlaiUsecases { } // TODO: Controlar que no se encuentre la subscription - const subscriptionid = subscription.data?.subscription.id + const subscriptionid = subscription.data?.subscription?.id const suspension = this.alaiRepository.pauseSubscription(subscriptionid!) return suspension }, args, args.correlation_id) @@ -211,7 +211,7 @@ export class SimAlaiUsecases { if (subscription.error != undefined) { return subscription } - const subscriptionid = subscription.data?.subscription.id + const subscriptionid = subscription.data?.subscription?.id // TODO: Controlar que no se encuentre la subscription const suspension = this.alaiRepository.unPauseSubscription(subscriptionid!) return suspension @@ -246,8 +246,8 @@ export class SimAlaiUsecases { */ public async selectCompleteSim(iccid: string): Promise> { const sim = await this.alaiRepository.getSimByICCID(iccid) @@ -255,7 +255,24 @@ export class SimAlaiUsecases { return sim } - const subscriptionId = sim.data!.subscription.id + if (sim.data == undefined) { + return { + error: `La sim ${iccid} no se ha encontrado` + } + } + + // En este caso la tarjeta no se ha preactivado, por lo que no tiene subscripcion + if (sim.data.subscription == undefined) { + return { + data: { + sim: sim.data, + subscription: undefined, + imei: undefined + } + } + } + + const subscriptionId = sim.data.subscription.id const subscription = await this.alaiRepository.getSubscriptionById(subscriptionId) if (subscription.error != undefined) { diff --git a/packages/sim-consumidor-alai/certificates/.debugToken b/packages/sim-consumidor-alai/certificates/.debugToken index 4af0e7a..add0932 100644 --- a/packages/sim-consumidor-alai/certificates/.debugToken +++ b/packages/sim-consumidor-alai/certificates/.debugToken @@ -1 +1 @@ -eyJhbGciOiJIUzM4NCJ9.eyJiciI6InNhdmVmYW1pbHkiLCJpcCI6Ijg3LjEyNC4xODIuNjAiLCJzdWIiOiJwYWxvbWFpYmFuZXoiLCJzIjoiRVdTMTY2NDJhMWI5N2E3MmMwIiwicG9zIjoic2F2ZWZhbWlseUNhYyIsImlkV3NVc2VyIjoiODYiLCJpc012bmEiOmZhbHNlLCJkb21haW4iOiJBbGFpfHNhdmVmYW1pbHkiLCJpYXQiOjE3Nzg1OTg3OTgsImV4cCI6MTc3ODYwOTU5OH0.GLUQftXMYiiIy8rdEyfW2MAoyyZCUVbImNXKmZxNovaO0SiBTOHQzgzhov1ajyrf +eyJhbGciOiJIUzM4NCJ9.eyJiciI6InNhdmVmYW1pbHkiLCJpcCI6Ijg4LjE1LjE1Ny4xNjciLCJzdWIiOiJwYWxvbWFpYmFuZXoiLCJzIjoiRVdTMTY3Mjc3OTE3YmVlMmU3IiwicG9zIjoic2F2ZWZhbWlseUNhYyIsImlkV3NVc2VyIjoiODYiLCJpc012bmEiOmZhbHNlLCJkb21haW4iOiJBbGFpfHNhdmVmYW1pbHkiLCJpYXQiOjE3Nzg2Njk5NTgsImV4cCI6MTc3ODY4MDc1N30.N_PZ3X2sMsMIs1gomG7eyCKyC8hev5EOeXIOZvQZelKwTkVX-U7P0Gbu6nhNeLyp diff --git a/packages/sim-consumidor-alai/domain/AlaiAPI.ts b/packages/sim-consumidor-alai/domain/AlaiAPI.ts index 70a0994..2631757 100644 --- a/packages/sim-consumidor-alai/domain/AlaiAPI.ts +++ b/packages/sim-consumidor-alai/domain/AlaiAPI.ts @@ -237,7 +237,7 @@ export namespace AlaiAPI { name: string, links: Link[] }, - subscription: { + subscription?: { id: string, name: string, links: Link[] diff --git a/packages/sim-consumidor-alai/domain/transformers.ts b/packages/sim-consumidor-alai/domain/transformers.ts index d473bcb..9e1c4e8 100644 --- a/packages/sim-consumidor-alai/domain/transformers.ts +++ b/packages/sim-consumidor-alai/domain/transformers.ts @@ -11,7 +11,8 @@ const alaiStates = new Map["billing_status"]>([ ["CONFIGURING", "SUSPENDED"], ["DELETED", "TERMINATED"], ["PRE_ACTIVE", "PREACTIVATED"], - ["TERMINATED", "TERMINATED"] + ["TERMINATED", "TERMINATED"], + ]) const alaiNetworkStates = new Map["network_status"]>([ @@ -22,23 +23,37 @@ const alaiNetworkStates = new Map["network ["FRAUD", "TERMINATED"] ]) -export function alaiSimToCommonSim(alaiSim: AlaiAPI.Sim, alaiSubscription: AlaiAPI.Subscription, imeiSubscription: AlaiAPI.GetImeiSubscriptionDTO): - Result> { +export function alaiSimToCommonSim(alaiSim: AlaiAPI.Sim, alaiSubscription?: AlaiAPI.Subscription, imeiSubscription?: AlaiAPI.GetImeiSubscriptionDTO): + Result> { - const status = alaiStates.get(alaiSubscription.status) ?? "UNKNOWN" - const networkStatus = alaiNetworkStates.get(alaiSubscription.networkStatus) ?? "UNKNOWN" + const billingStatus = (alaiSubscription == undefined) ? "AVAILABLE" : alaiStates.get(alaiSubscription?.status ?? "") ?? "UNKNOWN" + const networkStatus = (alaiSubscription == undefined) ? "AVAILABLE" : alaiNetworkStates.get(alaiSubscription.networkStatus) ?? "UNKNOWN" - const commonSim: CommonSim = { + const commonSim: CommonSim<{ + sim: AlaiAPI.Sim, + subscription?: AlaiAPI.Subscription, + imeiSubscription?: AlaiAPI.GetImeiSubscriptionDTO + }> = { company: "ALAI", - tariff: alaiSubscription.name, + tariff: alaiSubscription?.name, iccid: alaiSim.id, - msisdn: alaiSubscription.lastMsisdnID, - billing_status: status, + msisdn: alaiSubscription?.lastMsisdnID, + billing_status: billingStatus, network_status: networkStatus, - raw: alaiSubscription, - imei: imeiSubscription.content[0]?.id ?? "0", - preactivation_date: new Date(alaiSubscription.creationDate), - activation_date: new Date(alaiSubscription.firstActivationDate) + raw: { + subscription: alaiSubscription, + sim: alaiSim, + imeiSubscription: imeiSubscription + }, + imei: imeiSubscription?.content[0]?.id ?? "0", + preactivation_date: (alaiSubscription != undefined) ? new Date(alaiSubscription.creationDate) : undefined, + activation_date: (alaiSubscription != undefined) ? new Date(alaiSubscription.firstActivationDate) : undefined } return { diff --git a/packages/sim-shared/domain/CommonSim.ts b/packages/sim-shared/domain/CommonSim.ts index 6445f57..19da093 100644 --- a/packages/sim-shared/domain/CommonSim.ts +++ b/packages/sim-shared/domain/CommonSim.ts @@ -1,9 +1,9 @@ export type CommonSim = { company: "NOS" | "OBJ" | "ALAI", iccid: string, - msisdn: string, - tariff: string, // Depende de la compaƱia - billing_status: "PREACTIVATED" | "ACTIVE" | "SUSPENDED" | "TERMINATED" | "UNKNOWN", + msisdn?: string, + tariff?: string, // Depende de la compaƱia + billing_status: "AVAILABLE" | "PREACTIVATED" | "ACTIVE" | "SUSPENDED" | "TERMINATED" | "UNKNOWN", network_status: "AVAILABLE" | "PREACTIVATED" | "ACTIVE" | "SUSPENDED" | "TERMINATED" | "UNKNOWN", preactivation_date?: Date | null, activation_date?: Date | null,