Problema de select tarjetas no preactivadas

This commit is contained in:
2026-05-13 13:12:28 +02:00
parent 9d8788db39
commit cf6204e231
5 changed files with 57 additions and 25 deletions

View File

@@ -123,7 +123,7 @@ export class SimAlaiUsecases {
} }
} }
const subscriptionId = sim.data.subscription.id const subscriptionId = sim.data.subscription!.id
if (subscriptionId == undefined) { if (subscriptionId == undefined) {
return { return {
@@ -170,7 +170,7 @@ export class SimAlaiUsecases {
} }
// TODO: Controlar sim no encotrada (No deberia pasar) // TODO: Controlar sim no encotrada (No deberia pasar)
const subscriptionId = preactivatedSim.data!.subscription.id const subscriptionId = preactivatedSim.data!.subscription!.id
if (args.externalId) { if (args.externalId) {
const externalIdAdded = await this.alaiRepository.changeExternalId(subscriptionId, args.externalId) const externalIdAdded = await this.alaiRepository.changeExternalId(subscriptionId, args.externalId)
if (externalIdAdded.error != undefined) { if (externalIdAdded.error != undefined) {
@@ -195,7 +195,7 @@ export class SimAlaiUsecases {
} }
// TODO: Controlar que no se encuentre la subscription // 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!) const suspension = this.alaiRepository.pauseSubscription(subscriptionid!)
return suspension return suspension
}, args, args.correlation_id) }, args, args.correlation_id)
@@ -211,7 +211,7 @@ export class SimAlaiUsecases {
if (subscription.error != undefined) { if (subscription.error != undefined) {
return subscription return subscription
} }
const subscriptionid = subscription.data?.subscription.id const subscriptionid = subscription.data?.subscription?.id
// TODO: Controlar que no se encuentre la subscription // TODO: Controlar que no se encuentre la subscription
const suspension = this.alaiRepository.unPauseSubscription(subscriptionid!) const suspension = this.alaiRepository.unPauseSubscription(subscriptionid!)
return suspension return suspension
@@ -246,8 +246,8 @@ export class SimAlaiUsecases {
*/ */
public async selectCompleteSim(iccid: string): Promise<Result<string, { public async selectCompleteSim(iccid: string): Promise<Result<string, {
sim: AlaiAPI.Sim, sim: AlaiAPI.Sim,
subscription: AlaiAPI.Subscription, subscription?: AlaiAPI.Subscription,
imei: AlaiAPI.GetImeiSubscriptionDTO imei?: AlaiAPI.GetImeiSubscriptionDTO
}>> { }>> {
const sim = await this.alaiRepository.getSimByICCID(iccid) const sim = await this.alaiRepository.getSimByICCID(iccid)
@@ -255,7 +255,24 @@ export class SimAlaiUsecases {
return sim 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) const subscription = await this.alaiRepository.getSubscriptionById(subscriptionId)
if (subscription.error != undefined) { if (subscription.error != undefined) {

View File

@@ -1 +1 @@
eyJhbGciOiJIUzM4NCJ9.eyJiciI6InNhdmVmYW1pbHkiLCJpcCI6Ijg3LjEyNC4xODIuNjAiLCJzdWIiOiJwYWxvbWFpYmFuZXoiLCJzIjoiRVdTMTY2NDJhMWI5N2E3MmMwIiwicG9zIjoic2F2ZWZhbWlseUNhYyIsImlkV3NVc2VyIjoiODYiLCJpc012bmEiOmZhbHNlLCJkb21haW4iOiJBbGFpfHNhdmVmYW1pbHkiLCJpYXQiOjE3Nzg1OTg3OTgsImV4cCI6MTc3ODYwOTU5OH0.GLUQftXMYiiIy8rdEyfW2MAoyyZCUVbImNXKmZxNovaO0SiBTOHQzgzhov1ajyrf eyJhbGciOiJIUzM4NCJ9.eyJiciI6InNhdmVmYW1pbHkiLCJpcCI6Ijg4LjE1LjE1Ny4xNjciLCJzdWIiOiJwYWxvbWFpYmFuZXoiLCJzIjoiRVdTMTY3Mjc3OTE3YmVlMmU3IiwicG9zIjoic2F2ZWZhbWlseUNhYyIsImlkV3NVc2VyIjoiODYiLCJpc012bmEiOmZhbHNlLCJkb21haW4iOiJBbGFpfHNhdmVmYW1pbHkiLCJpYXQiOjE3Nzg2Njk5NTgsImV4cCI6MTc3ODY4MDc1N30.N_PZ3X2sMsMIs1gomG7eyCKyC8hev5EOeXIOZvQZelKwTkVX-U7P0Gbu6nhNeLyp

View File

@@ -237,7 +237,7 @@ export namespace AlaiAPI {
name: string, name: string,
links: Link[] links: Link[]
}, },
subscription: { subscription?: {
id: string, id: string,
name: string, name: string,
links: Link[] links: Link[]

View File

@@ -11,7 +11,8 @@ const alaiStates = new Map<AlaiAPI.Status, CommonSim<any>["billing_status"]>([
["CONFIGURING", "SUSPENDED"], ["CONFIGURING", "SUSPENDED"],
["DELETED", "TERMINATED"], ["DELETED", "TERMINATED"],
["PRE_ACTIVE", "PREACTIVATED"], ["PRE_ACTIVE", "PREACTIVATED"],
["TERMINATED", "TERMINATED"] ["TERMINATED", "TERMINATED"],
]) ])
const alaiNetworkStates = new Map<AlaiAPI.NetworkStatus, CommonSim<any>["network_status"]>([ const alaiNetworkStates = new Map<AlaiAPI.NetworkStatus, CommonSim<any>["network_status"]>([
@@ -22,23 +23,37 @@ const alaiNetworkStates = new Map<AlaiAPI.NetworkStatus, CommonSim<any>["network
["FRAUD", "TERMINATED"] ["FRAUD", "TERMINATED"]
]) ])
export function alaiSimToCommonSim(alaiSim: AlaiAPI.Sim, alaiSubscription: AlaiAPI.Subscription, imeiSubscription: AlaiAPI.GetImeiSubscriptionDTO): export function alaiSimToCommonSim(alaiSim: AlaiAPI.Sim, alaiSubscription?: AlaiAPI.Subscription, imeiSubscription?: AlaiAPI.GetImeiSubscriptionDTO):
Result<string, CommonSim<AlaiAPI.Subscription>> { Result<string, CommonSim<
{
sim: AlaiAPI.Sim,
subscription?: AlaiAPI.Subscription,
imeiSubscription?: AlaiAPI.GetImeiSubscriptionDTO
}
>> {
const status = alaiStates.get(alaiSubscription.status) ?? "UNKNOWN" const billingStatus = (alaiSubscription == undefined) ? "AVAILABLE" : alaiStates.get(alaiSubscription?.status ?? "") ?? "UNKNOWN"
const networkStatus = alaiNetworkStates.get(alaiSubscription.networkStatus) ?? "UNKNOWN" const networkStatus = (alaiSubscription == undefined) ? "AVAILABLE" : alaiNetworkStates.get(alaiSubscription.networkStatus) ?? "UNKNOWN"
const commonSim: CommonSim<AlaiAPI.Subscription> = { const commonSim: CommonSim<{
sim: AlaiAPI.Sim,
subscription?: AlaiAPI.Subscription,
imeiSubscription?: AlaiAPI.GetImeiSubscriptionDTO
}> = {
company: "ALAI", company: "ALAI",
tariff: alaiSubscription.name, tariff: alaiSubscription?.name,
iccid: alaiSim.id, iccid: alaiSim.id,
msisdn: alaiSubscription.lastMsisdnID, msisdn: alaiSubscription?.lastMsisdnID,
billing_status: status, billing_status: billingStatus,
network_status: networkStatus, network_status: networkStatus,
raw: alaiSubscription, raw: {
imei: imeiSubscription.content[0]?.id ?? "0", subscription: alaiSubscription,
preactivation_date: new Date(alaiSubscription.creationDate), sim: alaiSim,
activation_date: new Date(alaiSubscription.firstActivationDate) 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 { return {

View File

@@ -1,9 +1,9 @@
export type CommonSim<T> = { export type CommonSim<T> = {
company: "NOS" | "OBJ" | "ALAI", company: "NOS" | "OBJ" | "ALAI",
iccid: string, iccid: string,
msisdn: string, msisdn?: string,
tariff: string, // Depende de la compañia tariff?: string, // Depende de la compañia
billing_status: "PREACTIVATED" | "ACTIVE" | "SUSPENDED" | "TERMINATED" | "UNKNOWN", billing_status: "AVAILABLE" | "PREACTIVATED" | "ACTIVE" | "SUSPENDED" | "TERMINATED" | "UNKNOWN",
network_status: "AVAILABLE" | "PREACTIVATED" | "ACTIVE" | "SUSPENDED" | "TERMINATED" | "UNKNOWN", network_status: "AVAILABLE" | "PREACTIVATED" | "ACTIVE" | "SUSPENDED" | "TERMINATED" | "UNKNOWN",
preactivation_date?: Date | null, preactivation_date?: Date | null,
activation_date?: Date | null, activation_date?: Date | null,