import { EventBus } from "sim-shared/domain/EventBus.port"; import { SimEvents } from "sim-shared/domain/SimEvents"; /** * TODO: * - Conexion con la BDD * - Conexion con RabbitMQ * - Pasar a clase cuando existan las conexiones */ export class SimUsecases { private eventBus: EventBus constructor(args: { eventBus: EventBus } ) { this.eventBus = args.eventBus } /** * Crea una nueva sim de la que no se tenia registro anteriormente * Si ya existia se modifican los campos pero no se hace un cambio * de estado. */ async save(args: { iccid: string, imei: string, compañia: string }) { const activationEvent = { key: `sim.${args.compañia}.save`, payload: { iccid: args.iccid, imei: args.imei } } return this.eventBus.publish([activationEvent]) } async activation(args: { iccid: string, compañia: string, offer: string }) { const activationEvent = { key: `sim.${args.compañia}.activate`, payload: { iccid: args.iccid, offer: args.offer } } console.log("[d] Activation ", activationEvent) return this.eventBus.publish([activationEvent]) } async preActivation(args: { iccid: string, compañia: string }) { const preActivationEvent = { key: `sim.${args.compañia}.preActivate`, payload: { iccid: args.iccid } } console.log("[d] Pre - activation ", preActivationEvent) return this.eventBus.publish([preActivationEvent]) } /** * Para objenious es terminate */ async cancelation(args: { iccid: string, compañia: string }) { const activationEvent = { key: `sim.${args.compañia}.cancel`, payload: { iccid: args.iccid } } console.log("[d] Cancelation ", activationEvent) return this.eventBus.publish([activationEvent]) } // alias por si acaso public terminate = this.cancelation; /** * alias de bloquear / suspender en objenious */ async pause(args: { iccid: string, compañia: string }) { const cancelationEvent = { key: `sim.${args.compañia}.pause`, payload: { iccid: args.iccid } } return this.eventBus.publish([cancelationEvent]) } async free(args: { iccid: string, compañia: string }) { const cancelationEvent = { key: `sim.${args.compañia}.free`, payload: { iccid: args.iccid } } return this.eventBus.publish([cancelationEvent]) } }