63 lines
1.9 KiB
JavaScript
63 lines
1.9 KiB
JavaScript
const API = "http://127.0.0.1:8011/api";
|
|
|
|
export async function login(username, password) {
|
|
const res = await fetch(`${API}/login`, {
|
|
method: "POST",
|
|
headers: {"Content-Type": "application/json"},
|
|
body: JSON.stringify({ username, password })
|
|
});
|
|
if (!res.ok) throw new Error("Login failed");
|
|
return await res.json();
|
|
}
|
|
|
|
function authHeaders(token) {
|
|
return { "Content-Type": "application/json", "Authorization": `Bearer ${token}` };
|
|
}
|
|
|
|
export async function fetchPacks(token) {
|
|
const res = await fetch(`${API}/packs`, { headers: authHeaders(token) });
|
|
return await res.json();
|
|
}
|
|
|
|
export async function createLearner(token, learnerId, displayName) {
|
|
const res = await fetch(`${API}/learners`, {
|
|
method: "POST",
|
|
headers: authHeaders(token),
|
|
body: JSON.stringify({ learner_id: learnerId, display_name: displayName })
|
|
});
|
|
return await res.json();
|
|
}
|
|
|
|
export async function fetchLearnerState(token, learnerId) {
|
|
const res = await fetch(`${API}/learners/${learnerId}/state`, { headers: authHeaders(token) });
|
|
return await res.json();
|
|
}
|
|
|
|
export async function postEvidence(token, learnerId, event) {
|
|
const res = await fetch(`${API}/learners/${learnerId}/evidence`, {
|
|
method: "POST",
|
|
headers: authHeaders(token),
|
|
body: JSON.stringify(event)
|
|
});
|
|
return await res.json();
|
|
}
|
|
|
|
export async function fetchRecommendations(token, learnerId, packId) {
|
|
const res = await fetch(`${API}/learners/${learnerId}/recommendations/${packId}`, { headers: authHeaders(token) });
|
|
return await res.json();
|
|
}
|
|
|
|
export async function submitEvaluatorJob(token, learnerId, payload) {
|
|
const res = await fetch(`${API}/learners/${learnerId}/evaluator-jobs`, {
|
|
method: "POST",
|
|
headers: authHeaders(token),
|
|
body: JSON.stringify(payload)
|
|
});
|
|
return await res.json();
|
|
}
|
|
|
|
export async function fetchEvaluatorJob(token, jobId) {
|
|
const res = await fetch(`${API}/evaluator-jobs/${jobId}`, { headers: authHeaders(token) });
|
|
return await res.json();
|
|
}
|