From 08186da304e89de3b61d2a2f3b438598856579fc Mon Sep 17 00:00:00 2001
From: alex <alex@alexloehr.net>
Date: Sun, 22 Jun 2025 09:07:41 +0000
Subject: [PATCH] GS-2156
---
vue/src/lib/api.js | 68 +++++++++++++++++++++++++++++++---
1 files changed, 62 insertions(+), 6 deletions(-)
diff --git a/vue/src/lib/api.js b/vue/src/lib/api.js
index 3a88ee8..5290542 100644
--- a/vue/src/lib/api.js
+++ b/vue/src/lib/api.js
@@ -1,19 +1,75 @@
-const apiToken = "jiuGfr432898D90290kjfsldkfn3hh8F"
-export const apiBase = "/api/"
-export const iliasBase = "http://localhost:8060"
+import {computed, ref} from "vue"
+import {useSessionStorage} from "@vueuse/core"
+
+/////// API TOKEN ////////////////////////////////////////////////////////////////
+
+let apiToken = useSessionStorage("apiToken", "")
+export const apiTokenValid = computed(() => apiToken.value !== null && apiToken.value !== "")
+
+export function setApiToken (token) {
+ apiToken.value = token
+}
+
+export function deleteApiToken () {
+ apiToken.value = null
+}
+
+/////// CONSTANTS ////////////////////////////////////////////////////////////////
+
+export const apiBase = import.meta.env.VITE_API_BASE
+export const iliasBase = import.meta.env.VITE_ILIAS_BASE
+export const routerBase = import.meta.env.VITE_ROUTER_BASE
+
+/////// KURS ////////////////////////////////////////////////////////////////
+
+export async function getKurse () {
+ let resKurs = await fetch(`${apiBase}/kurs?token=${apiToken.value}`)
+ return await resKurs.json()
+}
export async function getKurs (kursId) {
- let resKurs = await fetch(`${apiBase}/kurs/${kursId}?token=${apiToken}`)
+ let resKurs = await fetch(`${apiBase}/kurs/${kursId}?token=${apiToken.value}`)
return await resKurs.json()
}
export async function getKursItems (kursId) {
- let resKurs = await fetch(`${apiBase}/kurs/items/${kursId}?token=${apiToken}`)
+ let resKurs = await fetch(`${apiBase}/kurs/items/${kursId}?token=${apiToken.value}`)
return await resKurs.json()
}
export async function getKursTn (kursId) {
- let resKurs = await fetch(`${apiBase}/kurs/teilnehmer/${kursId}?token=${apiToken}`)
+ let resKurs = await fetch(`${apiBase}/kurs/${kursId}/teilnehmer?token=${apiToken.value}`)
return await resKurs.json()
}
+/////// USER ////////////////////////////////////////////////////////////////
+
+export async function getUsers (offset, limit, search) {
+ const res = await fetch(`${apiBase}/user?offset=${offset}&limit=${limit}&search=${search}&token=${apiToken.value}`)
+ return res.json()
+}
+
+export async function getUser (userId) {
+ const res = await fetch(`${apiBase}/user/userid/${userId}?token=${apiToken.value}`)
+ return await res.json()
+}
+
+export async function getUserTeilnahmen (userId) {
+ const res = await fetch(`${apiBase}/user/teilnahmen/${userId}?token=${apiToken.value}`)
+ return await res.json()
+}
+
+/////// SEARCH ////////////////////////////////////////////////////////////////
+
+export async function searchUsers (query) {
+ const res = await fetch(`${apiBase}/search/user?search=${query}&token=${apiToken.value}`)
+ return await res.json()
+}
+
+export async function reindex () {
+ let url = `${apiBase}/search/reindex?token=${apiToken.value}`
+ const res = await fetch(url, {method: "POST"})
+ const data = await res.json()
+ console.log(data)
+ return data
+}
--
Gitblit v1.8.0