53 lines
1.4 KiB
JavaScript
53 lines
1.4 KiB
JavaScript
const U = window.NEUSICIAN_URLS ?? {
|
|
astlog: '/sompyle/astlog',
|
|
score: '/sompyle/score.spls',
|
|
status: '/sompyle/status.json',
|
|
result: '/sompyle/result.mp3',
|
|
submit: '/sompyle',
|
|
};
|
|
|
|
export const URLS = U;
|
|
|
|
function authHeader(credentials) {
|
|
if (!credentials) return {};
|
|
const b64 = btoa(`${credentials.username}:${credentials.password}`);
|
|
return { Authorization: `Basic ${b64}` };
|
|
}
|
|
|
|
export async function fetchAstLog(credentials) {
|
|
const res = await fetch(U.astlog, {
|
|
headers: authHeader(credentials),
|
|
});
|
|
if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);
|
|
return res.text();
|
|
}
|
|
|
|
export async function fetchScoreText(credentials) {
|
|
const res = await fetch(U.score, {
|
|
headers: authHeader(credentials),
|
|
});
|
|
if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);
|
|
return res.text();
|
|
}
|
|
|
|
export async function putScoreText(text, credentials) {
|
|
const res = await fetch(U.score, {
|
|
method: 'PUT',
|
|
headers: {
|
|
...authHeader(credentials),
|
|
'Content-Type': 'text/yaml',
|
|
},
|
|
body: text,
|
|
});
|
|
if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);
|
|
return res;
|
|
}
|
|
|
|
export async function fetchStatus(credentials) {
|
|
const res = await fetch(U.status, {
|
|
headers: authHeader(credentials),
|
|
});
|
|
if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);
|
|
return res.json();
|
|
}
|