63 lines
2.1 KiB
TypeScript
63 lines
2.1 KiB
TypeScript
import { Result } from "sim-shared/domain/Result.js";
|
|
import { AlaiAPI } from "./AlaiAPI.js";
|
|
import { CommonSim } from "sim-shared/domain/CommonSim.js";
|
|
|
|
const alaiStates = new Map<AlaiAPI.Status, CommonSim<any>["billing_status"]>([
|
|
["ABORTED", "SUSPENDED"],
|
|
["ACTIVE", "ACTIVE"],
|
|
["BLOCKEDCORE", "SUSPENDED"],
|
|
["BLOCKEDFRAUD", "SUSPENDED"],
|
|
["CANCELLED", "TERMINATED"],
|
|
["CONFIGURING", "SUSPENDED"],
|
|
["DELETED", "TERMINATED"],
|
|
["PRE_ACTIVE", "PREACTIVATED"],
|
|
["TERMINATED", "TERMINATED"],
|
|
|
|
])
|
|
|
|
const alaiNetworkStates = new Map<AlaiAPI.NetworkStatus, CommonSim<any>["network_status"]>([
|
|
["ACTIVE", "ACTIVE"],
|
|
["PRE_ACTIVE", "PREACTIVATED"],
|
|
["BLOCKED", "SUSPENDED"],
|
|
["DEACTIVATE", "SUSPENDED"],
|
|
["FRAUD", "TERMINATED"]
|
|
])
|
|
|
|
export function alaiSimToCommonSim(alaiSim: AlaiAPI.Sim, alaiSubscription?: AlaiAPI.Subscription, imeiSubscription?: AlaiAPI.GetImeiSubscriptionDTO):
|
|
Result<string, CommonSim<
|
|
{
|
|
sim: AlaiAPI.Sim,
|
|
subscription?: AlaiAPI.Subscription,
|
|
imeiSubscription?: AlaiAPI.GetImeiSubscriptionDTO
|
|
}
|
|
>> {
|
|
|
|
const billingStatus = (alaiSubscription == undefined) ? "AVAILABLE" : alaiStates.get(alaiSubscription?.status ?? "") ?? "UNKNOWN"
|
|
const networkStatus = (alaiSubscription == undefined) ? "AVAILABLE" : alaiNetworkStates.get(alaiSubscription.networkStatus) ?? "UNKNOWN"
|
|
|
|
const commonSim: CommonSim<{
|
|
sim: AlaiAPI.Sim,
|
|
subscription?: AlaiAPI.Subscription,
|
|
imeiSubscription?: AlaiAPI.GetImeiSubscriptionDTO
|
|
}> = {
|
|
company: "ALAI",
|
|
tariff: alaiSubscription?.name,
|
|
iccid: alaiSim.id,
|
|
msisdn: alaiSubscription?.lastMsisdnID,
|
|
billing_status: billingStatus,
|
|
network_status: networkStatus,
|
|
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 {
|
|
data: commonSim
|
|
}
|
|
}
|