import { $fetch } from 'ofetch'
import { createError, defineEventHandler, getHeader, getQuery } from 'h3'
import { useRuntimeConfig } from '#imports'

export default defineEventHandler(async (event) => {
  const config = useRuntimeConfig()
  const query = getQuery(event)
  const modulesApiBase =
    config.public.modulesApiBase || config.public.ApiBase || 'https://websopy-api.websoft.top/api'

  const tenantId =
    getHeader(event, 'tenantid') ||
    config.public.tenantId ||
    config.public.TenantId ||
    '5'
  const authorization = getHeader(event, 'authorization')

  try {
    return await $fetch('/cms/cms-website/pageAll', {
      baseURL: modulesApiBase,
      headers: {
        TenantId: String(tenantId),
        ...(authorization ? { Authorization: String(authorization) } : {})
      },
      query
    })
  } catch (error: any) {
    throw createError({
      statusCode: error?.statusCode || error?.response?.status || 502,
      statusMessage: error?.statusMessage || 'Failed to fetch pageAll'
    })
  }
})
