quackscape/assets/js/api.js

86 lines
2.3 KiB
JavaScript
Raw Normal View History

2024-03-11 14:56:03 +00:00
import SwaggerClient from "swagger-client";
const url = String(new URL("/api/", document.baseURI));
const api = new SwaggerClient(url);
api.then(
(client) => (window.client = client),
(reason) => console.error("Failed to load OpenAPI spec: " + reason)
);
function getScene(uuid) {
return api
.then(
(client) => client.apis.tours.tours_api_scenes_retrieve({ id: uuid }),
(reason) => console.error("Failed to load OpenAPI spec: " + reason)
)
.then(
(result) => result,
(reason) => console.error("Failed to execute API call: " + reason)
);
}
function getSceneElement(scene_uuid, uuid) {
return api
.then(
(client) =>
client.apis.tours.tours_api_scene_elements_retrieve({
scene: scene_uuid,
id: uuid,
}),
(reason) => console.error("Failed to load OpenAPI spec: " + reason)
)
.then(
(result) => result,
(reason) => console.error("Failed to execute API call: " + reason)
);
}
function getCategory(category) {
return api
.then(
(client) =>
client.apis.tours.tours_api_categories_retrieve({ id: category }),
(reason) => console.error("Failed to load OpenAPI spec: " + reason)
)
.then(
(result) => result,
(reason) => console.error("Failed to execute API call: " + reason)
);
}
function getCategoryMedia(category_uuid, uuid) {
return api
.then(
(client) =>
client.apis.tours.tours_api_category_media_retrieve({
category: category_uuid,
id: uuid,
}),
(reason) => console.error("Failed to load OpenAPI spec: " + reason)
)
.then(
(result) => result,
(reason) => console.error("Failed to execute API call: " + reason)
);
}
// Function to get the CSRF token cookie. Not exactly "API", but fits here best.
function getCookie(name) {
let cookieValue = null;
if (document.cookie && document.cookie !== "") {
const cookies = document.cookie.split(";");
for (let i = 0; i < cookies.length; i++) {
const cookie = cookies[i].trim();
if (cookie.substring(0, name.length + 1) === name + "=") {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
export { getScene, getSceneElement, getCategory, getCategoryMedia, getCookie };