Arreglo de error en detalle y data con espacio en cursos.

This commit is contained in:
Fimm committed 2026-09-10 17:35:05 +00:00
commit 3d0f898a8a
30 files changed
+8081

No files matched your search

+62
View File
@@ -0,0 +1,62 @@
import { NextRequest, NextResponse } from "next/server";
//const API = process.env.NEXT_PUBLIC_API_URL ?? "https://api.devops.norteamericano.cl";
const API_BASE_EMPRESAS = "https://api.devops.norteamericano.cl/api/Empresas";
const API_BASE_INFORMES = "https://api.devops.norteamericano.cl/api/Informes/cursos-empresa";
export async function GET(req: NextRequest) {
try {
const { searchParams } = new URL(req.url);
const tipo = searchParams.get("tipo");
const varA = searchParams.get("varA");
const varB = searchParams.get("varB");
const varC = searchParams.get("varC");
const cursoId = searchParams.get("cursoId");
const varZ = searchParams.get("varZ");
const varY = searchParams.get("varY");
const varX = searchParams.get("varX");
const usaInformes = tipo && varA !== null && varB !== null && varC !== null && cursoId !== null;
if (usaInformes) {
const url = `${API_BASE_INFORMES}?tipo=${encodeURIComponent(tipo)}&varA=${encodeURIComponent(varA)}&varB=${encodeURIComponent(varB)}&varC=${encodeURIComponent(varC)}&cursoId=${encodeURIComponent(cursoId)}`;
const res = await fetch(url);
const data = await res.json();
if (!data || (Array.isArray(data) && data.length === 0)) {
return NextResponse.json(
{ error: "No se encontraron cursos" },
{ status: 404 }
);
}
return NextResponse.json(data, { status: res.status });
}
if (!tipo || varZ === null || varY === null || varX === null) {
return NextResponse.json(
{ error: "Faltan parámetros obligatorios: tipo, varZ, varY, varX (Empresas) o tipo, varA, varB, varC, cursoId (Informes)" },
{ status: 400 }
);
}
const url = `${API_BASE_EMPRESAS}?tipo=${encodeURIComponent(tipo)}&varZ=${encodeURIComponent(varZ)}&varY=${encodeURIComponent(varY)}&varX=${encodeURIComponent(varX)}`;
const res = await fetch(url);
const data = await res.json();
if (!data || (Array.isArray(data) && data.length === 0)) {
return NextResponse.json(
{ error: "No se encontraron cursos" },
{ status: 404 }
);
}
return NextResponse.json(data, { status: res.status });
} catch {
return NextResponse.json(
{ error: "Error al obtener datos" },
{ status: 500 }
);
}
}
+40
View File
@@ -0,0 +1,40 @@
import { NextRequest, NextResponse } from "next/server";
const API_BASE = "https://api.devops.norteamericano.cl/api/Informes/cursos-empresa";
export async function GET(req: NextRequest) {
try {
const { searchParams } = new URL(req.url);
const tipo = searchParams.get("tipo");
const varA = searchParams.get("varA");
const varB = searchParams.get("varB");
const varC = searchParams.get("varC");
const cursoId = searchParams.get("cursoId");
if (!tipo || !varA || !varB || !varC || !cursoId) {
return NextResponse.json(
{ error: "Faltan parámetros: tipo, varA, varB, varC, cursoId" },
{ status: 400 }
);
}
const url = `${API_BASE}?tipo=${encodeURIComponent(tipo)}&varA=${encodeURIComponent(varA)}&varB=${encodeURIComponent(varB)}&varC=${encodeURIComponent(varC)}&cursoId=${encodeURIComponent(cursoId)}`;
const res = await fetch(url);
const data = await res.json();
if (!data || (Array.isArray(data) && data.length === 0)) {
return NextResponse.json(
{ error: "No se encontraron cursos" },
{ status: 404 }
);
}
return NextResponse.json(data, { status: res.status });
} catch {
return NextResponse.json(
{ error: "Error al obtener datos del dashboard" },
{ status: 500 }
);
}
}
+28
View File
@@ -0,0 +1,28 @@
import { NextResponse } from "next/server";
const API_ENDPOINT = "https://api.devops.norteamericano.cl/api/Auth/portal-login";
export async function POST(req: Request) {
try {
const { rut, password } = await req.json();
if (!rut || !password) {
return NextResponse.json(
{ error: "Rut y contraseña son requeridos" },
{ status: 400 }
);
}
const res = await fetch(API_ENDPOINT, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ rut, password }),
});
const data = await res.json();
return NextResponse.json(data, { status: res.status });
} catch {
return NextResponse.json(
{ error: "Usuario o contraseña incorrectos" },
{ status: 401 }
);
}
}