export const useFetchApi = async (endPoint: string, options: { headers?: object, method?: string, body?: string; auth?: boolean } = {}) => {
	// Headers
	let headers: { 'Content-type': string; /*'Accept-Language': string;*/ Authorization?: string } = {
		'Content-type': 'application/json; charset=UTF-8',
		//'Accept-Language': useNuxtApp().$i18n.getLocaleCookie() || 'en',
		...options.headers
	}

	// Body
	if (options.body) options.body = JSON.stringify(options.body)

	// Add access token to headers
	const token = useCookie('accessToken').value
	if (token && options.auth) {
		headers.Authorization = `Bearer ${token}`
	}

	// Prepare call API
	const env = useRuntimeConfig()
	const url = env.public.apiUrl + endPoint
	const config = { ...options, headers }

	// Call API
	const results = await fetch(url, config)
	const data = await results.json()

	if (!results.ok) throw new Error(data.message)

	return data
}
