import { ApplicationFull } from "@shared/types/application"; // @ts-ignore const addr = import.meta.env.VITE_APIHOST; export async function loadApplication(id: number | string, asAdmin: boolean = false): Promise { const res = await fetch(`${addr}/application/${id}?admin=${asAdmin}`, { credentials: 'include' }) if (res.status === 204) return null if (!res.ok) throw new Error('Failed to load application') const json = await res.json() // Accept either the object at root or under `application` return json; } export async function postApplication(val: any) { let out = { "App": val, } const res = await fetch(`${addr}/application`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(out), credentials: 'include', }) return res; } export async function postChatMessage(message: any, post_id: number) { const out = { message: message } const response = await fetch(`${addr}/application/${post_id}/comment`, { method: 'POST', credentials: 'include', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(out), }) return await response.json(); } export async function postAdminChatMessage(message: any, post_id: number) { const out = { message: message } const response = await fetch(`${addr}/application/${post_id}/adminComment`, { method: 'POST', credentials: 'include', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(out), }) return await response.json(); } export async function getAllApplications(): Promise { const res = await fetch(`${addr}/application/all`) if (res.ok) { return res.json() } else { console.error("Something went wrong approving the application") } } export async function loadMyApplications(): Promise { const res = await fetch(`${addr}/application/meList`, { credentials: 'include' }) if (res.ok) { return res.json() } else { console.error("Something went wrong approving the application") } } export async function getMyApplication(id: number): Promise { const res = await fetch(`${addr}/application/me/${id}`, { credentials: 'include' }) if (res.status === 204) return null if (res.status === 403) throw new Error("Unauthorized"); if (!res.ok) throw new Error('Failed to load application') const json = await res.json() // Accept either the object at root or under `application` return json; } export async function approveApplication(id: Number) { const res = await fetch(`${addr}/application/approve/${id}`, { method: 'POST' }) if (!res.ok) { console.error("Something went wrong approving the application") } } export async function denyApplication(id: Number) { const res = await fetch(`${addr}/application/deny/${id}`, { method: 'POST' }) if (!res.ok) { console.error("Something went wrong denying the application") } } export async function restartApplication() { const res = await fetch(`${addr}/application/restart`, { method: 'POST', credentials: 'include' }) if (!res.ok) { console.error("Something went wrong restarting your application") } }