|
|
|
|
|
|
|
const apiUrl = process.env.VC_VIDEOCHAIN_API_URL |
|
|
|
export const GET = async <T>(path: string = '', defaultValue: T): Promise<T> => { |
|
try { |
|
const res = await fetch(`${apiUrl}/${path}`, { |
|
method: "GET", |
|
headers: { |
|
Accept: "application/json", |
|
Authorization: `Bearer ${process.env.VC_SECRET_ACCESS_TOKEN}`, |
|
}, |
|
cache: 'no-store', |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
if (res.status !== 200) { |
|
|
|
throw new Error('Failed to fetch data') |
|
} |
|
|
|
const data = await res.json() |
|
|
|
return ((data as T) || defaultValue) |
|
} catch (err) { |
|
console.error(err) |
|
return defaultValue |
|
} |
|
} |
|
|
|
|
|
export const DELETE = async <T>(path: string = '', defaultValue: T): Promise<T> => { |
|
try { |
|
const res = await fetch(`${apiUrl}/${path}`, { |
|
method: "DELETE", |
|
headers: { |
|
Accept: "application/json", |
|
Authorization: `Bearer ${process.env.VC_SECRET_ACCESS_TOKEN}`, |
|
}, |
|
cache: 'no-store', |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
if (res.status !== 200) { |
|
|
|
throw new Error('Failed to fetch data') |
|
} |
|
|
|
const data = await res.json() |
|
|
|
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), |
|
|
|
|
|
next: { revalidate: 1 } |
|
}) |
|
|
|
|
|
|
|
|
|
if (res.status !== 200) { |
|
|
|
throw new Error('Failed to post data') |
|
} |
|
|
|
const data = await res.json() |
|
|
|
return ((data as T) || defaultValue) |
|
} catch (err) { |
|
return defaultValue |
|
} |
|
} |
|
|
|
|
|
export const PUT = async <S, T>(path: string = '', payload: S, defaultValue: T): Promise<T> => { |
|
try { |
|
const res = await fetch(`${apiUrl}/${path}`, { |
|
method: "PUT", |
|
headers: { |
|
Accept: "application/json", |
|
"Content-Type": "application/json", |
|
Authorization: `Bearer ${process.env.VC_SECRET_ACCESS_TOKEN}`, |
|
}, |
|
body: JSON.stringify(payload), |
|
|
|
|
|
next: { revalidate: 1 } |
|
}) |
|
|
|
|
|
|
|
|
|
if (res.status !== 200) { |
|
|
|
throw new Error('Failed to post data') |
|
} |
|
|
|
const data = await res.json() |
|
|
|
return ((data as T) || defaultValue) |
|
} catch (err) { |
|
return defaultValue |
|
} |
|
} |
|
|
|
export const PATCH = async <S, T>(path: string = '', payload: S, defaultValue: T): Promise<T> => { |
|
try { |
|
const res = await fetch(`${apiUrl}/${path}`, { |
|
method: "PATCH", |
|
headers: { |
|
Accept: "application/json", |
|
"Content-Type": "application/json", |
|
Authorization: `Bearer ${process.env.VC_SECRET_ACCESS_TOKEN}`, |
|
}, |
|
body: JSON.stringify(payload), |
|
|
|
|
|
next: { revalidate: 1 } |
|
}) |
|
|
|
|
|
|
|
|
|
if (res.status !== 200) { |
|
|
|
throw new Error('Failed to post data') |
|
} |
|
|
|
const data = await res.json() |
|
|
|
return ((data as T) || defaultValue) |
|
} catch (err) { |
|
return defaultValue |
|
} |
|
} |