Files
void-genesis/dev/lobby-frontend/src/api/sectors.js
T

62 lines
2.0 KiB
JavaScript

/**
* Die Basis-URL für alle Sektor-spezifischen Anfragen an das Backend.
* Auch hier zentralisiert, um zukünftige Server-Umzüge zu erleichtern.
*/
const API_BASE_URL = 'https://api-dev.void-genesis.de/api/sectors';
/**
* Ruft die Liste aller verfügbaren Sektoren vom Backend ab.
* Da diese Route geschützt ist, müssen wir das Access-Token mitsenden.
*
* @param {string} token - Das JWT Access Token des aktuell eingeloggten Nutzers
*
* @returns {Promise<Object>} - Ein Objekt mit 'ok' (boolean) und den 'data' (JSON)
*/
export async function fetchSectorsList(token) {
try {
const response = await fetch(`${API_BASE_URL}/list`, {
method: 'GET',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
const data = await response.json();
return { ok: response.ok, data };
} catch (error) {
console.error("Netzwerkfehler beim Sektor-Abruf:", error);
throw error;
}
}
/**
* Sendet die Anfrage an das Backend, um einem neuen Sektor beizutreten.
*
* @param {string} token - Das JWT Access Token
* @param {string} sectorId - Die UUID des Sektors
* @param {string} localUsername - Der gewünschte Commander-Name
* @param {string} gender - Das gewählte Geschlecht ('male' oder 'female')
*
* @returns {Promise<Object>} - Ein Objekt mit 'ok' (boolean) und den 'data' (JSON)
*/
export async function joinSectorUser(token, sectorId, localUsername, gender) {
try {
const response = await fetch(`${API_BASE_URL}/join`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ sectorId, localUsername, gender })
});
const data = await response.json();
return { ok: response.ok, data };
} catch (error) {
console.error("Netzwerkfehler beim Sektor-Beitritt:", error);
throw error;
}
}