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 fileServerBase = config.public.fileServerBase || 'https://server.websoft.top'
  const path = getRouterParam(event, 'path') || ''
  const search = getRequestURL(event).search
  const target = joinURL(fileServerBase, 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) } : {})
    }
  })
})
