Checkpoint audio-only Skald fork work

This commit is contained in:
Storm Dragon
2026-05-18 13:06:57 -04:00
parent a8ada950d5
commit 965347cad4
48 changed files with 1080 additions and 3651 deletions
+55 -55
View File
@@ -154,133 +154,133 @@ async function updateObject(url, values, etag) {
}
/**
* listGroups returns the list of groups.
* listHalls returns the list of halls.
*
* @returns {Promise<Array<string>>}
*/
async function listGroups() {
async function listHalls() {
return await listObjects('/skald-api/v0/.halls/');
}
/**
* getGroup returns the sanitised description of the given group.
* getHall returns the sanitised description of the given hall.
*
* @param {string} group
* @param {string} hall
* @param {string} [etag]
* @returns {Promise<Object>}
*/
async function getGroup(group, etag) {
return await getObject(`/skald-api/v0/.halls/${group}`, etag);
async function getHall(hall, etag) {
return await getObject(`/skald-api/v0/.halls/${hall}`, etag);
}
/**
* createGroup creates a group. It fails if the group already exists.
* createHall creates a hall. It fails if the hall already exists.
*
* @param {string} group
* @param {string} hall
* @param {Object} [values]
*/
async function createGroup(group, values) {
return await createObject(`/skald-api/v0/.halls/${group}`, values);
async function createHall(hall, values) {
return await createObject(`/skald-api/v0/.halls/${hall}`, values);
}
/**
* deleteGroup deletes a group.
* deleteHall deletes a hall.
*
* @param {string} group
* @param {string} hall
* @param {string} [etag]
*/
async function deleteGroup(group, etag) {
return await deleteObject(`/skald-api/v0/.halls/${group}`, etag);
async function deleteHall(hall, etag) {
return await deleteObject(`/skald-api/v0/.halls/${hall}`, etag);
}
/**
* updateGroup modifies a hall definition.
* updateHall modifies a hall definition.
* Any fields present in values are overriden, any fields absent in values
* are left unchanged.
*
* @param {string} group
* @param {string} hall
* @param {Object} values
* @param {string} [etag]
*/
async function updateGroup(group, values, etag) {
return await updateObject(`/skald-api/v0/.halls/${group}`, values);
async function updateHall(hall, values, etag) {
return await updateObject(`/skald-api/v0/.halls/${hall}`, values);
}
/**
* listUsers lists the users in a given group.
* listUsers lists the users in a given hall.
*
* @param {string} group
* @param {string} hall
* @returns {Promise<Array<string>>}
*/
async function listUsers(group) {
return await listObjects(`/skald-api/v0/.halls/${group}/.users/`);
async function listUsers(hall) {
return await listObjects(`/skald-api/v0/.halls/${hall}/.users/`);
}
/**
* userURL returns the URL for a user entry
*
* @param {string} group
* @param {string} hall
* @param {string} user
* @param {boolean} wildcard
*/
function userURL(group, user, wildcard) {
function userURL(hall, user, wildcard) {
if(wildcard)
return `/skald-api/v0/.halls/${group}/.wildcard-user`;
return `/skald-api/v0/.halls/${hall}/.wildcard-user`;
else if(user === "")
return `/skald-api/v0/.halls/${group}/.empty-user`;
return `/skald-api/v0/.halls/${hall}/.empty-user`;
else
return `/skald-api/v0/.halls/${group}/.users/${user}`
return `/skald-api/v0/.halls/${hall}/.users/${user}`
}
/**
* getUser returns a given user entry.
*
* @param {string} group
* @param {string} hall
* @param {string} user
* @param {boolean} wildcard
* @param {string} [etag]
* @returns {Promise<Object>}
*/
async function getUser(group, user, wildcard, etag) {
return await getObject(userURL(group, user, wildcard), etag);
async function getUser(hall, user, wildcard, etag) {
return await getObject(userURL(hall, user, wildcard), etag);
}
/**
* createUser creates a new user entry. It fails if the user already
* exists.
*
* @param {string} group
* @param {string} hall
* @param {string} user
* @param {boolean} wildcard
* @param {Object} values
*/
async function createUser(group, user, wildcard, values) {
return await createObject(userURL(group, user, wildcard), values);
async function createUser(hall, user, wildcard, values) {
return await createObject(userURL(hall, user, wildcard), values);
}
/**
* deleteUser deletes a user.
*
* @param {string} group
* @param {string} hall
* @param {string} user
* @param {boolean} wildcard
* @param {string} [etag]
*/
async function deleteUser(group, user, wildcard, etag) {
return await deleteObject(userURL(group, user, wildcard), etag);
async function deleteUser(hall, user, wildcard, etag) {
return await deleteObject(userURL(hall, user, wildcard), etag);
}
/**
* updateUser modifies a given user entry.
*
* @param {string} group
* @param {string} hall
* @param {string} user
* @param {Object} values
* @param {boolean} wildcard
* @param {string} [etag]
*/
async function updateUser(group, user, wildcard, values, etag) {
return await updateObject(userURL(group, user, wildcard), values, etag);
async function updateUser(hall, user, wildcard, values, etag) {
return await updateObject(userURL(hall, user, wildcard), values, etag);
}
/**
@@ -288,13 +288,13 @@ async function updateUser(group, user, wildcard, values, etag) {
* If oldpassword is provided, then it is used for authentication instead
* of the browser's normal mechanism.
*
* @param {string} group
* @param {string} hall
* @param {string} user
* @param {boolean} wildcard
* @param {string} password
* @param {string} [oldpassword]
*/
async function setPassword(group, user, wildcard, password, oldpassword) {
async function setPassword(hall, user, wildcard, password, oldpassword) {
let options = {
method: 'POST',
headers: {
@@ -308,42 +308,42 @@ async function setPassword(group, user, wildcard, password, oldpassword) {
`Basic ${btoa(user + ':' + oldpassword)}`
}
let r = await fetch(userURL(group, user, wildcard) + '/.password', options);
let r = await fetch(userURL(hall, user, wildcard) + '/.password', options);
if(!r.ok)
throw httpError(r);
}
/**
* listTokens lists the tokens for a given group.
* listTokens lists the tokens for a given hall.
*
* @param {string} group
* @param {string} hall
* @returns {Promise<Array<string>>}
*/
async function listTokens(group) {
return await listObjects(`/skald-api/v0/.halls/${group}/.tokens/`);
async function listTokens(hall) {
return await listObjects(`/skald-api/v0/.halls/${hall}/.tokens/`);
}
/**
* getToken returns a given token.
*
* @param {string} group
* @param {string} hall
* @param {string} token
* @param {string} [etag]
* @returns {Promise<Object>}
*/
async function getToken(group, token, etag) {
return await getObject(`/skald-api/v0/.halls/${group}/.tokens/${token}`,
async function getToken(hall, token, etag) {
return await getObject(`/skald-api/v0/.halls/${hall}/.tokens/${token}`,
etag);
}
/**
* createToken creates a new token and returns its name
*
* @param {string} group
* @param {string} hall
* @param {Object} template
* @returns {Promise<string>}
*/
async function createToken(group, template) {
async function createToken(hall, template) {
let options = {
method: 'POST',
headers: {
@@ -353,7 +353,7 @@ async function createToken(group, template) {
}
let r = await fetch(
`/skald-api/v0/.halls/${group}/.tokens/`,
`/skald-api/v0/.halls/${hall}/.tokens/`,
options);
if(!r.ok)
throw httpError(r);
@@ -366,13 +366,13 @@ async function createToken(group, template) {
/**
* updateToken modifies a token.
*
* @param {string} group
* @param {string} hall
* @param {Object} token
*/
async function updateToken(group, token, etag) {
async function updateToken(hall, token, etag) {
if(!token.token)
throw new Error("Unnamed token");
return await updateObject(
`/skald-api/v0/.halls/${group}/.tokens/${token.token}`,
`/skald-api/v0/.halls/${hall}/.tokens/${token.token}`,
token, etag);
}