import { AxiosRequestConfig, AxiosResponse } from 'axios' import _map from 'lodash/map' import { nanoid } from 'nanoid' import { isBrowser } from '../utils' import { publicRequest } from './publicRequest' export const getPaymentData = async (hash: string): Promise => { const response: AxiosResponse = await publicRequest.get(`v1/order/${hash}/review`, { headers: { 'Referer-Url': isBrowser ? document.referrer : '' }, }) return response.data } export const handlePaymentSuccess = async ( orderHash: string ): Promise => { const response: AxiosResponse = await publicRequest.post(`v1/order/${orderHash}/success`, undefined, { headers: { ...publicRequest.defaults.headers.common, 'Referer-Url': isBrowser ? document.referrer : '', }, }) return response.data } export const handleFreeSuccess = async ( orderHash: string ): Promise => { const response: AxiosResponse = await publicRequest.post( `v1/order/${orderHash}/complete_free_registration`, undefined, { headers: { 'Referer-Url': isBrowser ? document.referrer : '' } } ) return response.data } export const getConfirmationData = async ( orderHash: string ): Promise => { const response: AxiosResponse = await publicRequest.get(`v1/order/${orderHash}/payment/complete`) return response.data } export const getConditions = async ( eventId: string ): Promise => { const response: AxiosResponse = await publicRequest.get(`v1/event/${eventId}/conditions`) const adaptedData: IConditionsAdaptedData[] = _map( response.data.data.attributes, item => ({ id: nanoid(), text: item, checked: false, }) ) const returnData: AxiosResponse = { ...response, data: { ...response.data, data: { ...response.data.data, attributes: adaptedData, }, }, } return returnData.data }