Newer
Older
import axios, { AxiosRequestConfig } from 'axios'
import { toast } from 'react-toastify'
import { ICustomPopup } from './models/customPopup.model'
import { IPartnersInfo } from './models/partnersInfo.model'
import { User } from './models/user.model'
const endpoints = {
/** public endpoints */
common: {
WhoAmI: '/api/common/WhoAmI',
partnersInfo: '/api/common/partnersInfo',
customPop: '/api/common/customPopup',
logout: '/Logout',
},
/** animator role required endpoints */
animator: {
partnersInfo: '/api/animator/partnersInfo',
imageNames: '/api/animator/imageNames',
savePartnersInfo: '/api/animator/savePartnersInfo',
},
} as const
export const fetchWhoAmI = async () => {
const { data } = await axios.get<User | null>(endpoints.common.WhoAmI)
return data
} catch (error) {
console.error('error whoami', error)
toast.error('Accès refusé, veuillez vous connecter')
}
}
export const fetchLogout = async () => {
export const fetchEcogestureImages = async (
axiosHeaders: AxiosRequestConfig
) => {
const { data: imageNames } = await axios.get<string[]>(
`/api/animator/imageNames`,
axiosHeaders
)
if (imageNames && imageNames !== null) {
return imageNames.map(image => `/assets/ecogesture/${image}`)
}
return []
}
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
export const fetchPartnersIssue = async () => {
try {
const { data } = await axios.get<IPartnersInfo>(
endpoints.common.partnersInfo
)
return data
} catch (error) {
console.error('error partnersInfo', error)
toast.error('Accès refusé, veuillez vous connecter')
throw error
}
}
export const savePartnersInfo = async (
partnersInfo: IPartnersInfo,
axiosHeaders: AxiosRequestConfig
) => {
try {
await axios.put<IPartnersInfo>(
endpoints.animator.partnersInfo,
{
grdf_failure: partnersInfo.grdf_failure,
enedis_failure: partnersInfo.enedis_failure,
egl_failure: partnersInfo.egl_failure,
notification_activated: partnersInfo.notification_activated,
},
axiosHeaders
)
toast.success('Information des partenaires mises à jour !')
} catch (error) {
toast.error('Erreur lors de la mise à jour des information des partenaires')
console.error(error)
}
}
export const fetchCustomPopup = async (): Promise<ICustomPopup> => {
try {
const { data } = await axios.get<ICustomPopup>(endpoints.common.customPop)
return data
} catch (error) {
console.error('error customPopup', error)
toast.error('Accès refusé, veuillez vous connecter')
throw error
}
}