import { notFound } from "next/navigation"

import { BankApiForm } from "@/components/xml-apis/bank-api/bank-api-form"
import { fetchBackendBankApiById } from "../_lib/bank-api-server-api"

type PageProps = {
  params: Promise<{ id: string }>
}

export default async function BankApiEditRoute({ params }: PageProps) {
  const { id } = await params
  const bankId = id.trim()

  if (!bankId || !/^\d+$/.test(bankId)) {
    notFound()
  }

  const { detail, errorMessage } = await fetchBackendBankApiById(bankId)

  if (errorMessage === "Authentication is required.") {
    throw new Error(errorMessage)
  }

  if (!detail) {
    notFound()
  }

  return <BankApiForm mode="update" initial={detail} />
}
