64 lines
1.5 KiB
TypeScript
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}`
|
|
// }
|