diff --git a/.env b/.env index ecc3477..250da3e 100644 --- a/.env +++ b/.env @@ -27,3 +27,6 @@ PGHOST=localhost PGUSER=alvar PGPASSWORD=alvar PGPORT=5433 + +# Proxy +SIMCONNECTIONSURL=http://sim-connections.savefamilygps.net diff --git a/docs/sim-api/Activate.bru b/docs/sim-api/Activate.bru index 6417025..f22b24c 100644 --- a/docs/sim-api/Activate.bru +++ b/docs/sim-api/Activate.bru @@ -11,7 +11,7 @@ post { } body:form-urlencoded { - iccid: 8933201125068890694 + iccid: 8933201125068890408 offer: SAVEFAMILY1 } diff --git a/docs/sim-api/Cancel.bru b/docs/sim-api/Cancel.bru index 778e066..642091a 100644 --- a/docs/sim-api/Cancel.bru +++ b/docs/sim-api/Cancel.bru @@ -11,7 +11,7 @@ post { } body:form-urlencoded { - iccid: 8933201125068887864 + iccid: 8933201125068890074 } settings { diff --git a/packages/sim-consumidor-objenious/aplication/Sim.router.ts b/packages/sim-consumidor-objenious/aplication/Sim.router.ts index 79a001e..18380b6 100644 --- a/packages/sim-consumidor-objenious/aplication/Sim.router.ts +++ b/packages/sim-consumidor-objenious/aplication/Sim.router.ts @@ -19,7 +19,7 @@ export class SimRouter { ["activate", this.simController.activate()], ["pause", this.simController.suspend()], ["cancel", this.simController.terminate()], - ["reActivate", this.simController.reActivate()], + ["reactivation", this.simController.reActivate()], ["preActivate", this.simController.preActivate()] ]); } diff --git a/packages/sim-entrada-eventos/aplication/Sim.controller.ts b/packages/sim-entrada-eventos/aplication/Sim.controller.ts index 9afe780..79bef42 100644 --- a/packages/sim-entrada-eventos/aplication/Sim.controller.ts +++ b/packages/sim-entrada-eventos/aplication/Sim.controller.ts @@ -131,6 +131,20 @@ export class SimController { }) } + + public reActivation() { + return this.controllerGenerator<{ iccid: string, offer: string }, { iccid: string, offer: string, compañia: string }>({ + validator: activationValidator, + mapBody: (b) => { + const { iccid, offer } = b + const compañia = companyFromIccid(iccid) + return { iccid, compañia, offer } + }, + useCase: (args) => this.simUseCases.reActivation(args), + onError: (d, e) => console.error("[x] Error activacion: ", d, e), + onSuccess: console.log + }) + } public cancelation() { return this.controllerGenerator<{ iccid: string }, { iccid: string, compañia: string }>({ validator: iccidValidator, diff --git a/packages/sim-entrada-eventos/aplication/Sim.usecases.ts b/packages/sim-entrada-eventos/aplication/Sim.usecases.ts index ad74047..95cf670 100644 --- a/packages/sim-entrada-eventos/aplication/Sim.usecases.ts +++ b/packages/sim-entrada-eventos/aplication/Sim.usecases.ts @@ -130,6 +130,36 @@ export class SimUsecases { } } + async reActivation(args: { iccid: string, compañia: string, offer: string }): + Promise> { + const activationEvent = { + key: `sim.${args.compañia}.reactivation`, + payload: { + iccid: args.iccid, + offer: args.offer + } + } + const activationWithId = this.addMessage_id(activationEvent) + console.log("[d] Reactivation ", activationWithId) + await this.eventBus.publish([activationWithId]) + const createdOrder = await this.saveOrder(activationWithId) + + if (createdOrder.error != undefined) { + console.error(createdOrder.error) + return { + error: createdOrder.error + } + } + + return { + data: { + iccid: args.iccid, + operation: "reactivation", + message_id: createdOrder.data?.correlation_id + } + } + } + async preActivation(args: { iccid: string, compañia: string }): Promise> { diff --git a/packages/sim-entrada-eventos/index.ts b/packages/sim-entrada-eventos/index.ts index 39ea518..cd3953b 100644 --- a/packages/sim-entrada-eventos/index.ts +++ b/packages/sim-entrada-eventos/index.ts @@ -5,6 +5,7 @@ import { simRoutes } from "./infrastructure/simRoutes.http.js" import { rabbitmqEventBus } from '#config/eventBusConfig.js'; import { env } from "#config/env/index.js" import { orderRoutes } from "#adapters/orderRoutes.http.js"; +import { connectionsRoutes } from "#adapters/simconnectionsRoutes.js"; const PORT = env.API_PORT const HOSTNAME = "0.0.0.0" @@ -26,6 +27,7 @@ app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use("/sim", simRoutes) +app.use("/simconnections", connectionsRoutes) app.use("/orders", orderRoutes) app.use("/docs", express.static(path.join(process.cwd(), '../../docs'))) diff --git a/packages/sim-entrada-eventos/infrastructure/simRoutes.http.ts b/packages/sim-entrada-eventos/infrastructure/simRoutes.http.ts index 5324b9c..9276ea6 100644 --- a/packages/sim-entrada-eventos/infrastructure/simRoutes.http.ts +++ b/packages/sim-entrada-eventos/infrastructure/simRoutes.http.ts @@ -23,6 +23,7 @@ simRoutes.get("/status", () => { }) simRoutes.post("/save", simController.save()) simRoutes.post("/activate", simController.activation()) +simRoutes.post("/reActivate", simController.reActivation()) simRoutes.post("/preActivate", simController.preactivation()) @@ -36,11 +37,4 @@ simRoutes.post("/test", simController.test()) simRoutes.post("/free", simController.free()) -// Proxy - -//const proxySimConnections = - -// simRoutes.post("/simconnections/sim/activate") -//simRoutes.post("/simconnections/sim/pause") - export { simRoutes } diff --git a/packages/sim-entrada-eventos/infrastructure/simconnectionsRoutes.ts b/packages/sim-entrada-eventos/infrastructure/simconnectionsRoutes.ts new file mode 100644 index 0000000..47d2e01 --- /dev/null +++ b/packages/sim-entrada-eventos/infrastructure/simconnectionsRoutes.ts @@ -0,0 +1,20 @@ +import { Router } from "express" +import { createProxyMiddleware } from "http-proxy-middleware" + +export const connectionsRoutes = Router() + +const CONNECTIONSURL = "" // TODO: Meter al ENV + +connectionsRoutes.post("/sim/activate", createProxyMiddleware({ + target: CONNECTIONSURL + "/sim/activate", + changeOrigin: true, + // pathrewrite + //on proxy req +})) + +connectionsRoutes.post("/sim/pause", createProxyMiddleware({ + target: CONNECTIONSURL + "/sim/activate", + changeOrigin: true +})) + +