1 line
2.6 KiB
JavaScript
1 line
2.6 KiB
JavaScript
import{G as e}from"./egdMPJ-g.js";import"./ChnYctHm.js";import{n as t}from"./CS5Tuebd.js";var n=`/api`;async function r(r,i){let a=e(t),o=await fetch(n+r,{...i,headers:{"Content-Type":`application/json`,...a?{Authorization:`Bearer ${a}`}:{},...i?.headers}});if(o.status,!o.ok){let e=await o.json().catch(()=>({error:o.statusText}));throw Error(e.error||o.statusText)}return o.status===204?{}:o.json()}var i={auth:{login:(e,t)=>r(`/auth/login`,{method:`POST`,body:JSON.stringify({email:e,password:t})})},admin:{courses:{list:()=>r(`/admin/courses`),create:(e,t)=>r(`/admin/courses`,{method:`POST`,body:JSON.stringify({name:e,semester:t})}),listStudents:e=>r(`/admin/courses/${e}/students`),addStudent:(e,t)=>r(`/admin/courses/${e}/students`,{method:`POST`,body:JSON.stringify({name:t})}),importStudents:(r,i)=>{let a=new FormData;return a.append(`file`,i),fetch(`${n}/admin/courses/${r}/students/import`,{method:`POST`,headers:{Authorization:`Bearer ${e(t)}`},body:a}).then(e=>e.json())}},students:{delete:e=>r(`/admin/students/${e}`,{method:`DELETE`}),getAttendance:e=>r(`/admin/students/${e}/attendance`),getNotes:e=>r(`/admin/students/${e}/notes`)},rooms:{list:()=>r(`/admin/rooms`),create:(e,t)=>r(`/admin/rooms`,{method:`POST`,body:JSON.stringify({name:e,layout:t})}),get:e=>r(`/admin/rooms/${e}`),updateLayout:(e,t)=>r(`/admin/rooms/${e}/layout`,{method:`PUT`,body:JSON.stringify(t)})},sessions:{list:e=>r(`/admin/sessions?course_id=${e}`),create:(e,t,n)=>r(`/admin/sessions`,{method:`POST`,body:JSON.stringify({course_id:e,week_nr:t,date:n})}),getAttendance:e=>r(`/admin/sessions/${e}/attendance`)},slots:{create:(e,t,n,i,a)=>r(`/admin/slots`,{method:`POST`,body:JSON.stringify({session_id:e,tutor_id:t,start_time:n,end_time:i,room_id:a})}),updateStatus:(e,t)=>r(`/admin/slots/${e}/status`,{method:`PATCH`,body:JSON.stringify({status:t})}),delete:e=>r(`/admin/slots/${e}`,{method:`DELETE`}),addAttendance:(e,t)=>r(`/admin/slots/${e}/attendance`,{method:`POST`,body:JSON.stringify({student_id:t})}),deleteAttendance:(e,t)=>r(`/admin/slots/${e}/attendance/${t}`,{method:`DELETE`}),getNotes:e=>r(`/admin/slots/${e}/notes`),upsertNote:(e,t,n)=>r(`/admin/slots/${e}/notes/${t}`,{method:`PUT`,body:JSON.stringify({content:n})})},export:{sessionCsv:e=>`${n}/admin/export/session/${e}/csv`,sessionMd:e=>`${n}/admin/export/session/${e}/md`,courseCsv:e=>`${n}/admin/export/course/${e}/csv`,courseMd:e=>`${n}/admin/export/course/${e}/md`,backup:()=>`${n}/admin/backup`}},checkin:{getInfo:e=>r(`/api/checkin/${e}`),getStudents:e=>r(`/api/checkin/${e}/students`),post:(e,t,n)=>r(`/api/checkin`,{method:`POST`,body:JSON.stringify({code:e,student_id:t,seat_id:n})})}};export{i as t}; |