48 lines
1.6 KiB
TypeScript
48 lines
1.6 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<AlaiAPI.Subscription>> {
|
|
|
|
const status = alaiStates.get(alaiSubscription.status) ?? "UNKNOWN"
|
|
const networkStatus = alaiNetworkStates.get(alaiSubscription.networkStatus) ?? "UNKNOWN"
|
|
|
|
const commonSim: CommonSim<AlaiAPI.Subscription> = {
|
|
company: "ALAI",
|
|
tariff: alaiSubscription.name,
|
|
iccid: alaiSim.id,
|
|
msisdn: alaiSubscription.lastMsisdnID,
|
|
billing_status: status,
|
|
network_status: networkStatus,
|
|
raw: alaiSubscription,
|
|
imei: imeiSubscription.content[0]?.id ?? "0",
|
|
preactivation_date: new Date(alaiSubscription.creationDate),
|
|
activation_date: new Date(alaiSubscription.firstActivationDate)
|
|
}
|
|
|
|
return {
|
|
data: commonSim
|
|
}
|
|
}
|