Move API fetch data to different file

Sharing multiple exportable functions in one file impacts the use of private env variables 🤷
This commit is contained in:
2022-08-16 20:00:52 +02:00
parent 6e904850aa
commit 93a50770d0
16 changed files with 50 additions and 47 deletions

29
src/utils/api/data.ts Normal file
View File

@@ -0,0 +1,29 @@
import { API_TOKEN } from '$env/static/private'
import { PUBLIC_API_GRAPHQL_PATH } from '$env/static/public'
import { API_URL } from '.'
/**
* Fetch data from Directus API
*/
export const fetchAPI = async (query: string) => {
try {
const res = await fetch(`${API_URL}${PUBLIC_API_GRAPHQL_PATH}`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${API_TOKEN}`,
},
body: JSON.stringify({
query
})
})
if (res.ok) {
const data = await res.json()
return data
}
} catch (error) {
throw Error(error)
}
}

View File

@@ -1,36 +1,10 @@
import { env } from '$env/dynamic/private'
import { PUBLIC_API_URL_DEV, PUBLIC_API_URL_PROD, PUBLIC_API_GRAPHQL_PATH } from '$env/static/public'
import { PUBLIC_API_URL_DEV, PUBLIC_API_URL_PROD } from '$env/static/public'
// Define API URL from environment
export const API_URL = env.DEV ? PUBLIC_API_URL_DEV : PUBLIC_API_URL_PROD
/**
* Fetch data from Directus API
*/
export const fetchAPI = async (query: string) => {
try {
const res = await fetch(`${API_URL}${PUBLIC_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) {
throw Error(error)
}
}
/**
* Get a Directus asset URL from parameters
*/