import axios, { AxiosResponse } from 'axios';
import { getConfig } from './config';
import { RupantorOptions, RupantorResult } from './types';
export async function rupantor(
  options: RupantorOptions
): Promise<RupantorResult> {
  const apiKey = getConfig().apiKey;
  const version = getConfig().version;

  let apiUrl = '';
  if (version === 'v2') {
    apiUrl = `https://barikoi.xyz/v2/api/search/rupantor/geocode`;
  } else {
    apiUrl = `https://barikoi.xyz/v1/api/search/${apiKey}/rupantor/geocode`;
  }
  const params =
    version === 'v1' ? { ...options } : { api_key: apiKey, ...options };

  try {
    const response: AxiosResponse<RupantorResult> = await axios.post(
      apiUrl,
      params
    );
    return response.data;
  } catch (error) {
    console.error('Rupantor geocode request failed:', error.message);
    throw error;
  }
}
