generated from gitea_admin/default
34 lines
931 B
JavaScript
34 lines
931 B
JavaScript
import { createError, getQuery } from "h3"
|
|
import { strapiFetch } from "@/utils/strapi.js"
|
|
import logger from "~~/server/utils/logger"
|
|
|
|
export function createStrapiProxyHandler({ strapiPath }) {
|
|
return async (event) => {
|
|
try {
|
|
const query = getQuery(event)
|
|
const qs = new URLSearchParams(query).toString()
|
|
const path = qs ? `${strapiPath}?${qs}` : strapiPath
|
|
|
|
return await strapiFetch(event, path)
|
|
} catch (err) {
|
|
logger.error("Strapi request failed", {
|
|
label: "back-end",
|
|
statusCode: err?.statusCode,
|
|
statusMessage: err?.statusMessage,
|
|
message: err?.message,
|
|
data: err?.data,
|
|
url: event?.path,
|
|
method: event?.method,
|
|
})
|
|
|
|
throw createError({
|
|
statusCode: err?.statusCode || 502,
|
|
statusMessage:
|
|
err?.statusMessage ||
|
|
err?.message ||
|
|
"Strapi request failed",
|
|
})
|
|
}
|
|
}
|
|
}
|