base_ui/server/api/ali/index.ts

57 lines
1.6 KiB
TypeScript
Raw Normal View History

2025-02-01 09:34:55 +00:00
import { defineEventHandler, getQuery, readBody } from "h3";
// import { useStorage } from "@vueuse/core";
// import { buildState2, validationToken } from "../../utils/utils";
// import { validationToken } from "~/utils/globalMixin";
export default defineEventHandler(async (event) => {
// defineAppConfig
const baseUrl = process.env.VITE_BASE_URL;
const method = event.node.req.method;
const reqHeaders = getRequestHeaders(event);
const config = useRuntimeConfig();
// let token = useStorage("id_token", "GuestAccess").value;
// return {
// reqHeaders,
// config,
// method,
// baseUrl,
// token,
// };
console.info("config", config);
// console.info("reqHeaders", reqHeaders);
try {
if (method === "GET") {
// Proxy GET requests to the external API
const query = getQuery(event);
const response = await $fetch(`${baseUrl}api/repo/schema`, {
params: query,
});
return response;
}
if (method === "POST") {
// Proxy POST requests to the external API
const body = await readBody(event);
const response = await $fetch(`${baseUrl}api/repo/schema`, {
headers: {
Authorization: reqHeaders.authorization,
},
method,
body,
});
return response;
}
throw createError({ statusCode: 405, statusMessage: "Method Not Allowed" });
} catch (error) {
console.error("Error communicating with the external API:", error);
throw createError({
statusCode: error.statusCode || 500,
statusMessage: error.statusMessage || "Internal Server Error",
});
}
});