Funcionan todos los select, pendiente el general

This commit is contained in:
2026-05-07 11:37:35 +02:00
parent 1d7c2b2946
commit 9c74fb9a7b
13 changed files with 37 additions and 44 deletions

View File

@@ -1,7 +1,7 @@
import { AlaiRepository } from "#infrastructure/AlaiRepository.js";
import { JWTToken } from "sim-shared/domain/JWT.js";
import { JWTProvider } from "sim-shared/infrastructure/HTTPClient.js";
import { httpsAgent } from "#config/httpsAgent.js";
export class AlaiTokenManager implements JWTProvider<{}> {
@@ -11,7 +11,7 @@ export class AlaiTokenManager implements JWTProvider<{}> {
private async getNewAuthToken() {
// TODO: Si no funcionase hay que reprogramar los mensajes para ser
// consumidos mas tarde.
const res = await AlaiRepository.login();
const res = await AlaiRepository.login(httpsAgent);
if (res.error != undefined) {
console.error("Error obteniendo el token de ALAI", res.error)

View File

@@ -5,13 +5,13 @@ import { httpsAgent } from "./httpsAgent.js"
import { DebugTokenManager } from "#aplication/DebugTokenManager.js";
const tokenManager = new AlaiTokenManager()
const debugTokenManagr = new DebugTokenManager()
console.error("USANDO DebugTokenManager! Eliminar en prod")
//const debugTokenManagr = new DebugTokenManager()
//console.error("USANDO DebugTokenManager! Eliminar en prod")
export const alaiHttp = new HttpClient({
baseURL: env.ALAI_API_URL as string,
headers: {},
jwtManager: debugTokenManagr,
jwtManager: tokenManager,
httpsAgent: httpsAgent
})

View File

@@ -3,6 +3,7 @@ import axios, { AxiosError, AxiosResponse } from "axios";
import { Result } from "sim-shared/domain/Result.js";
import { env } from "#config/env/env.js";
import { HttpClient } from "sim-shared/infrastructure/HTTPClient.js";
import https from "https"
export class AlaiRepository {
constructor(
@@ -30,7 +31,7 @@ export class AlaiRepository {
}
}
public static async login(): Promise<Result<string, AlaiAPI.LoginResponseDTO>> {
public static async login(httpsAgent: https.Agent): Promise<Result<string, AlaiAPI.LoginResponseDTO>> {
const alaiUrl = env.ALAI_API_URL
const endpoint = "/v1/auth/login"
const fullUrl = alaiUrl + endpoint
@@ -41,7 +42,7 @@ export class AlaiRepository {
}
try {
const loginRes = await axios.post<AlaiAPI.LoginResponseDTO>(fullUrl, data)
const loginRes = await axios.post<AlaiAPI.LoginResponseDTO>(fullUrl, data, { httpsAgent })
return {
data: loginRes.data
}

View File

@@ -127,7 +127,7 @@ export class SimNosController {
const validateBody = iccidValidator.validate(body);
if (validateBody.error != undefined) {
res.status(402).json(validateBody)
res.status(422).json(validateBody)
return;
}

View File

@@ -219,15 +219,16 @@ export class SimController {
*/
public select() {
return async (req: Request, res: Response) => {
console.log("SELECT: ", req.query)
const iccid = req.query.iccid as string
try {
iccidValidator.validate({ iccid: iccid })
} catch (e) {
const validationRes = iccidValidator.validate({ iccid: iccid })
if (validationRes.error != undefined) {
res.status(422).json({
errors: {
msg: e
...validationRes.error
}
})
return;
}
const company = companyFromIccid(iccid)
@@ -239,9 +240,9 @@ export class SimController {
}
try {
const respSelect = await axios.get(url + endpoint)
const respSelect = await axios.get(url + endpoint, { params: req.query })
res.json(respSelect.data)
// TODO: 200
} catch (err) {
if (isAxiosError(err)) {
const axiosErr = err as AxiosError

View File

@@ -39,6 +39,8 @@ app.use("/france", franceRoutes)
// Rutas especificas de España (Alai)
app.use("/spain", spainRoutes)
//TODO: app.use("/portugal", portugalRoutes)
app.get("/health", (req, res) => {
res.status(200).json({ status: "ok" })
})

View File

@@ -0,0 +1,14 @@
export type CommonSim = {
company: "NOS" | "OBJ" | "ALAI",
iccid: string,
msisdn: string,
tariff: string, // Depende de la compañia
billing_state: "AVAILABLE" | "PREACTIVATED" | "ACTIVATED" | "SUSPENDED" | "TERMINATED" | "UNKNOWN",
network_state: "AVAILABLE" | "PREACTIVATED" | "ACTIVATED" | "SUSPENDED" | "TERMINATED" | "UNKNOWN",
preactivation_date?: Date | null,
activation_date?: Date | null,
suspension_date?: Date | null,
termination_date?: Date | null,
imei: string,
raw: any
}

View File

@@ -1,20 +0,0 @@
import { User } from "./User.js"
export type SimCard = {
iccid: string,
imei: string,
/* Pedido de shopify */
orderdId?: string, // Pasar a tipo
/* Subscripcion de shopify */
subscriptionId?: string, // Pasar a tipo
user?: User
createdAt?: Date,
updatedAt?: Date,
codigoOrigen?: string,
}

View File

@@ -12,7 +12,8 @@ export namespace SimEvents {
key: `sim.${string}.activate`,
payload: {
iccid: string,
offer?: string
offer?: string,
orderId?: string
},
}

View File

@@ -1,6 +0,0 @@
export type User = {
userId: string,
userName?: string,
email?: string,
tlfn?: string,
}