import { Logger } from '@vue-storefront/core'
import { ApiContext, ContentSearchParams } from './types'
import transformQuery from './helpers/transformQuery'

export const getContent = async (
  { client, config }: ApiContext,
  { query, queryOptions }: ContentSearchParams
): Promise<any> => {
  const { apiOptions, endpoint } = config
  const api = await client.getApi(endpoint, apiOptions)

  let response = null
  try {
    const { results, ...metadata } = await api.query(transformQuery(query), queryOptions)
    response = { results, metadata }
  } catch (error) {
    Logger.error('Can\'t get data from Prismic.', error)
  }
  return response
}
