import type { VodResponse } from "@futureporn/types"; import { configs } from "./config.ts"; export default async function findVod({ vod_id, discord_message_id }: { vod_id?: string, discord_message_id?: string }): Promise { const fetchUrl = (!!vod_id) ? `${configs.postgrestUrl}/vods?id=eq.${vod_id}&select=*,segments(bytes,updated_at,created_at,s3_key)` : `${configs.postgrestUrl}/vods?discord_message_id=eq.${discord_message_id}&select=*,segments(bytes,updated_at,created_at)` console.info(fetchUrl) const fetchOptions = { method: 'GET', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Prefer': 'return=representation' } } const res = await fetch(fetchUrl, fetchOptions) if (!res.ok) { const msg = `request failed. status=${res.status}, statusText=${res.statusText}` console.error(msg) throw new Error(msg) } const json = await res.json() as VodResponse[] return json?.at(0) || null }