40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import { CommonSim } from "sim-shared/domain/CommonSim.js";
|
|
import { NosApi } from "./NosAPI.js";
|
|
|
|
const billingStates = new Map<
|
|
NosApi.LineData["billingState"]["currentState"],
|
|
CommonSim<any>["billing_status"]>([
|
|
["active", "ACTIVE"],
|
|
["terminated", "TERMINATED"]
|
|
])
|
|
|
|
const networkStates = new Map<
|
|
NosApi.LineData["networkState"]["currentState"],
|
|
CommonSim<any>["network_status"]
|
|
>([
|
|
["active", "ACTIVE"],
|
|
["terminated", "TERMINATED"],
|
|
["barred", "SUSPENDED"]
|
|
])
|
|
|
|
export function nosSimToCommonSim(nosSim: NosApi.LineData): CommonSim<NosApi.LineData> {
|
|
const billingState = billingStates.get(nosSim.billingState.currentState) ?? "UNKNOWN"
|
|
const networkState = networkStates.get(nosSim.networkState.currentState) ?? "UNKNOWN"
|
|
|
|
const commonSim: CommonSim<NosApi.LineData> = {
|
|
company: "NOS",
|
|
tariff: nosSim.tariffName,
|
|
iccid: nosSim.physicalId,
|
|
msisdn: nosSim.subscriberId,
|
|
billing_status: billingState!,
|
|
network_status: networkState!,
|
|
raw: nosSim,
|
|
imei: nosSim.imei,
|
|
activation_date: new Date(nosSim.connectionDate),
|
|
termination_date: new Date(nosSim.terminateDate),
|
|
suspension_date: null // NOS no especifica la fecha de de 'barred' que equivale a la suspension
|
|
}
|
|
|
|
return commonSim
|
|
}
|