43 lines
1.3 KiB
TypeScript
43 lines
1.3 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", "TERMINATED"],
|
|
["FRAUD", "TERMINATED"]
|
|
])
|
|
|
|
export function alaiSimToCommonSim(alaiSim: AlaiAPI.Sim, alaiSubscription: AlaiAPI.Subscription): Result<string, CommonSim<AlaiAPI.Sim>> {
|
|
|
|
const status = alaiStates.get(alaiSubscription.status) ?? "UNKNOWN"
|
|
const networkStatus = alaiNetworkStates.get(alaiSubscription.networkStatus) ?? "UNKNOWN"
|
|
|
|
const commonSim: CommonSim<AlaiAPI.Sim> = {
|
|
company: "ALAI",
|
|
iccid: alaiSim.id,
|
|
msisdn: alaiSubscription.lastMsisdnID,
|
|
billing_status: status,
|
|
network_status: networkStatus,
|
|
raw: alaiSim
|
|
}
|
|
|
|
return {
|
|
data: commonSim
|
|
}
|
|
}
|