Files
housesof/src/utils/api.ts

64 lines
1.5 KiB
TypeScript

// Define API URL from environment
export const API_URL = import.meta.env.DEV
? `${import.meta.env.VITE_API_URL_DEV}`
: `${import.meta.env.VITE_API_URL_PROD}`
/**
* Fetch data from Directus API
*/
export const fetchAPI = async (query: string) => {
try {
const res = await fetch(`${API_URL}${import.meta.env.VITE_API_GRAPHQL_PATH}`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${import.meta.env.VITE_API_TOKEN}`,
},
body: JSON.stringify({
query
})
})
if (res.ok) {
const data = await res.json()
return data
}
} catch (error) {
console.error(error)
}
}
/**
* Get a Directus asset URL from parameters
*/
export const getAssetUrlKey = (
id: string,
key: string
) => {
if (!id || !key) return null
return `${API_URL}/assets/${id}?key=${key}`
}
/**
* Get a Directus asset URL from parameters
*/
// export const getAssetUrl = (
// id: string,
// width: number,
// height: number,
// quality?: number,
// fit: string = 'inside',
// format?: string
// ) => {
// let args = ''
// // Add arguments to URL if specified
// if (quality) args += `&quality=${quality}`
// if (format) args += `&format=${format}`
// return `${API_URL}/assets/${id}?width=${width}&height=${height}&fit=${fit}${args}`
// }