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 };