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:
@@ -1,6 +1,6 @@
|
||||
import { error } from '@sveltejs/kit'
|
||||
import type { PageServerLoad } from './$types'
|
||||
import { fetchAPI } from '$utils/api'
|
||||
import { fetchAPI } from '$utils/api/data'
|
||||
import { PUBLIC_PREVIEW_COUNT } from '$env/static/public'
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { error } from '@sveltejs/kit'
|
||||
import type { PageServerLoad } from './$types'
|
||||
import { fetchAPI } from '$utils/api'
|
||||
import { fetchAPI } from '$utils/api/data'
|
||||
import { getRandomItems } from '$utils/functions'
|
||||
|
||||
export const load: PageServerLoad = async () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { error } from '@sveltejs/kit'
|
||||
import type { PageServerLoad } from './$types'
|
||||
import { PUBLIC_LIST_AMOUNT } from '$env/static/public'
|
||||
import { fetchAPI } from '$utils/api'
|
||||
import { fetchAPI } from '$utils/api/data'
|
||||
|
||||
export const photoFields = `
|
||||
title
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { error } from '@sveltejs/kit'
|
||||
import type { PageServerLoad } from './$types'
|
||||
import { fetchAPI } from '$utils/api'
|
||||
import { fetchAPI } from '$utils/api/data'
|
||||
|
||||
export const load: PageServerLoad = async ({ params }) => {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { error } from '@sveltejs/kit'
|
||||
import type { PageServerLoad } from './$types'
|
||||
import { fetchAPI } from '$utils/api'
|
||||
import { fetchAPI } from '$utils/api/data'
|
||||
import { getRandomItems } from '$utils/functions'
|
||||
|
||||
export const load: PageServerLoad = async () => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { error } from '@sveltejs/kit'
|
||||
import type { RequestHandler } from './$types'
|
||||
import { fetchAPI } from '$utils/api'
|
||||
import { fetchAPI } from '$utils/api/data'
|
||||
|
||||
|
||||
export const POST: RequestHandler = async ({ request }) => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { error } from '@sveltejs/kit'
|
||||
import type { PageServerLoad } from './$types'
|
||||
import { fetchAPI } from '$utils/api'
|
||||
import { fetchAPI } from '$utils/api/data'
|
||||
|
||||
export const load: PageServerLoad = async () => {
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { error } from '@sveltejs/kit'
|
||||
import type { PageServerLoad } from './$types'
|
||||
import { fetchAPI } from '$utils/api'
|
||||
import { fetchAPI } from '$utils/api/data'
|
||||
import { PUBLIC_FILTERS_DEFAULT_COUNTRY, PUBLIC_FILTERS_DEFAULT_SORT, PUBLIC_GRID_AMOUNT } from '$env/static/public'
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { error } from '@sveltejs/kit'
|
||||
import type { PageServerLoad } from './$types'
|
||||
import { fetchAPI } from '$utils/api'
|
||||
import { fetchAPI } from '$utils/api/data'
|
||||
import { getProducts } from '$utils/functions/swell'
|
||||
|
||||
export const load: PageServerLoad = async () => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { error } from '@sveltejs/kit'
|
||||
import type { PageServerLoad } from './$types'
|
||||
import { fetchAPI } from '$utils/api'
|
||||
import { fetchAPI } from '$utils/api/data'
|
||||
import { getProduct } from '$utils/functions/swell'
|
||||
import { getRandomItem } from '$utils/functions'
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { error } from '@sveltejs/kit'
|
||||
import type { PageServerLoad } from './$types'
|
||||
import { fetchAPI } from '$utils/api'
|
||||
import { fetchAPI } from '$utils/api/data'
|
||||
import { getProduct } from '$utils/functions/swell'
|
||||
|
||||
export const load: PageServerLoad = async ({ params }) => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { error } from '@sveltejs/kit'
|
||||
import type { PageServerLoad } from './$types'
|
||||
import { fetchAPI } from '$utils/api'
|
||||
import { fetchAPI } from '$utils/api/data'
|
||||
|
||||
export const load: PageServerLoad = async () => {
|
||||
try {
|
||||
|
||||
29
src/utils/api/data.ts
Normal file
29
src/utils/api/data.ts
Normal 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)
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
*/
|
||||
Reference in New Issue
Block a user