import type { NextApiRequest, NextApiResponse } from 'next'
import { getAverageColor } from 'fast-average-color-node'

export type Data = Awaited<ReturnType<typeof getAverageColor>> | undefined

export default async function averageColor(req: NextApiRequest, res: NextApiResponse<Data | Error>) {
  const image = req.query?.image as string

  if (image) {
    try {
      const color = await getAverageColor(image)
      return res.status(200).json(color)
    } catch (error) {
      console.error(error)

      if (error instanceof Error) {
        return res.status(500).send(error)
      }
    }
  }

  res.status(400).send(new Error('`image` query parameter missing'))
}
