Files
sf-sim/packages/sim-consumidor-alai/domain/transformers.ts

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
}
}