import { defineEventHandler, getHeader, getRequestURL, getRouterParam, proxyRequest } from 'h3'
import { useRuntimeConfig } from '#imports'

function joinURL(base: string, path: string) {
  if (!path) return base
  return base.replace(/\/+$/, '') + '/' + path.replace(/^\/+/, '')
}

export default defineEventHandler((event) => {
  const config = useRuntimeConfig()
  const modulesApiBase =
    config.public.modulesApiBase || config.public.ApiBase || 'https://cms-api.websoft.top/api'
  const path = getRouterParam(event, 'path') || ''
  const search = getRequestURL(event).search
  const target = joinURL(modulesApiBase, path) + search

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

  return proxyRequest(event, target, {
    headers: {
      TenantId: String(tenantId),
      ...(authorization ? { Authorization: String(authorization) } : {})
    }
  })
})
