import type { Data as AverageColorResponse } from '@/pages/api/average-color'

/**
 * Get the average color of an image
 */
export const getImageAverageColor = async (image: string | null): Promise<AverageColorResponse | null> => {
  if (!image || process.env.NEXT_PUBLIC_SITE_URL?.includes('localhost')) return Promise.resolve(null)

  try {
    const endpoint = `${process.env.NEXT_PUBLIC_SITE_URL}/api/average-color?${new URLSearchParams({ image })}`

    const response = await fetch(endpoint, {
      method: 'POST',
      headers: {
        Accept: 'application/json',
        'Content-Type': 'application/json',
      },
    })

    const data: AverageColorResponse = await response.json()

    return data
  } catch (error) {
    console.error(error)
    return Promise.resolve(null)
  }
}
