import { createService } from './myriaAuthRequiredInstance'; import axios, { AxiosError } from 'axios'; const timeout = 60000; export interface IResponseError { httpCode: number | undefined; errors: [{ code: string; title: string; detail: string }]; } export function mapError(error: AxiosError): IResponseError { return { httpCode: error.response?.status, errors: error.response?.data.errors ?? [], }; } const apiClient = axios.create({ baseURL: window.env.NEXT_PUBLIC_API_URL, timeout, headers: { accept: 'application/json', 'Content-type': 'application/json', }, withCredentials: true, }); export const salesforceAPIClient = axios.create({ baseURL: window.env.NEXT_PUBLIC_SALESFORCE_URL, timeout, headers: { accept: 'application/json', 'Content-type': 'application/json', }, }); export const additionalApiClient = axios.create({ baseURL: window.env.NEXT_PUBLIC_ADDITIONAL_API_URL, timeout, headers: { accept: 'application/json', 'Content-type': 'application/json', }, }); export const campaignApiClient = axios.create({ baseURL: window.env.NEXT_PUBLIC_CAMPAIGN_SERVICE_URL, timeout, headers: { accept: 'application/json', 'Content-type': 'application/json', 'x-api-key': `${window.env.NEXT_PUBLIC_CAMPAIGN_API_KEY}`, }, }); export const accountApiClient = createService(window.env.NEXT_PUBLIC_API_URL); export default apiClient;