Spaces:
Paused
Paused
File size: 2,160 Bytes
43dd1ac |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
// note: there is no / at the end in the variable
// so we have to add it ourselves if needed
const apiUrl = process.env.VC_VIDEOCHAIN_API_URL
export const get = async <T>(path: string = '', defaultValue: T): Promise<T> => {
try {
console.log("fetching:", `${apiUrl}/${path} with Bearer ${process.env.VC_SECRET_ACCESS_TOKEN}`)
const res = await fetch(`${apiUrl}/${path}`, {
method: "GET",
headers: {
Accept: "application/json",
Authorization: `Bearer ${process.env.VC_SECRET_ACCESS_TOKEN}`,
},
cache: 'no-store',
// we can also use this (see https://vercel.com/blog/vercel-cache-api-nextjs-cache)
// next: { revalidate: 10 }
})
console.log("res:", res)
// The return value is *not* serialized
// You can return Date, Map, Set, etc.
// Recommendation: handle errors
if (res.status !== 200) {
// This will activate the closest `error.js` Error Boundary
throw new Error('Failed to fetch data')
}
const data = await res.json()
console.log("data:", data)
return ((data as T) || defaultValue)
} catch (err) {
console.error(err)
return defaultValue
}
}
export const post = async <S, T>(path: string = '', payload: S, defaultValue: T): Promise<T> => {
try {
const res = await fetch(`${apiUrl}/${path}`, {
method: "POST",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.VC_SECRET_ACCESS_TOKEN}`,
},
body: JSON.stringify(payload),
cache: 'no-store',
// we can also use this (see https://vercel.com/blog/vercel-cache-api-nextjs-cache)
// next: { revalidate: 10 }
})
// The return value is *not* serialized
// You can return Date, Map, Set, etc.
// Recommendation: handle errors
if (res.status !== 200) {
// This will activate the closest `error.js` Error Boundary
throw new Error('Failed to post data')
}
const data = await res.json()
return ((data as T) || defaultValue)
} catch (err) {
console.error(err)
return defaultValue
}
} |