export async function getPromos() { const res = await fetch('api/promos', {headers: {'Accept': 'application/json'}}) if (res.status == 200) { return await res.json(); } else { throw new Error((await res.json()).errmsg); } } export async function getUsers() { const res = await fetch('api/users', {headers: {'Accept': 'application/json'}}) if (res.status == 200) { return await res.json(); } else { throw new Error((await res.json()).errmsg); } } export async function getUser(uid) { const res = await fetch(`api/users/${uid}`, {headers: {'Accept': 'application/json'}}) if (res.status == 200) { return await res.json(); } else { throw new Error((await res.json()).errmsg); } } export async function getGrades(uid, survey) { const res = await fetch(`api/grades`, {headers: {'Accept': 'application/json'}}) if (res.status == 200) { return await res.json(); } else { throw new Error((await res.json()).errmsg); } } export async function getUserGrade(uid, survey) { const res = await fetch(`api/users/${uid}/surveys/${survey.id}/grades`, {headers: {'Accept': 'application/json'}}) if (res.status == 200) { return await res.json(); } else { throw new Error((await res.json()).errmsg); } } export async function getUserScore(uid, survey) { const res = await fetch(`api/users/${uid}/surveys/${survey.id}/score`, {headers: {'Accept': 'application/json'}}) if (res.status == 200) { return await res.json(); } else { throw new Error((await res.json()).errmsg); } } export class UserNeedingHelp { constructor(res) { if (res) { this.update(res); } } update({ id, id_user, date, comment, treated }) { this.id = id; this.id_user = id_user; this.date = new Date(date); this.comment = comment; if (treated) { this.treated = new Date(treated); } else { this.treated = null; } } mark_treated() { this.treated = new Date(); } async save() { const res = await fetch(this.id?`api/help/${this.id}`:'api/help', { method: this.id?'PUT':'POST', headers: {'Accept': 'application/json'}, body: JSON.stringify(this), }); if (res.status == 200) { const data = await res.json() this.update(data); return data; } else { throw new Error((await res.json()).errmsg); } } } export async function getUserNeedingHelp() { const res = await fetch(`api/help`, {headers: {'Accept': 'application/json'}}) if (res.status == 200) { return (await res.json()).map((nh) => { return new UserNeedingHelp(nh) }); } else { throw new Error((await res.json()).errmsg); } } export async function getScore(survey) { const res = await fetch(survey.kind === "w" ? `api/works/${survey.id}/score` : `api/surveys/${survey.id}/score`, {headers: {'Accept': 'application/json'}}) if (res.status == 200) { return await res.json(); } else { throw new Error((await res.json()).errmsg); } }