import { ADMIN_GET_ORDER_MATCHING_POOL_ROUTE } from '../constants.js'
import type { Config } from '../createConfig.js'
import { getRelayerWithAdmin } from '../utils/http.js'

export type GetOrderMatchingPoolParameters = {
  orderId: string
}

export type GetOrderMatchingPoolReturnType = string

export async function getOrderMatchingPool(
  config: Config,
  parameters: GetOrderMatchingPoolParameters,
): Promise<GetOrderMatchingPoolReturnType> {
  const { orderId } = parameters
  const { getBaseUrl } = config

  try {
    const res = await getRelayerWithAdmin(
      config,
      getBaseUrl(ADMIN_GET_ORDER_MATCHING_POOL_ROUTE(orderId)),
    )

    return res.matching_pool
  } catch (error) {
    console.error(`Failed to get matching pool for order ${orderId}`, { error })

    throw error
  }
}
