server-worklog/frontend/app/composables/useServers.ts

60 lines
1.2 KiB
TypeScript

import { ref } from "vue"
import { isUnauthorized } from "~/utils/auth"
export function useServers() {
const servers = ref([])
const loading = ref(false)
const error = ref("")
const { apiFetch } = useApi()
async function loadServers() {
loading.value = true
error.value = ""
const result = await apiFetch("/servers")
if (isUnauthorized(result)) {
loading.value = false
return result
}
servers.value = result
loading.value = false
return result
}
async function createServer(hostname: string, description: string, owner_id: number | null) {
const payload = {
hostname: hostname,
description: description,
owner_id: owner_id
}
loading.value = true
error.value = ""
const result = await apiFetch("/servers", {
method: "POST",
body: payload
})
if (isUnauthorized(result)) {
loading.value = false
return result
}
// Optional: direkt in die Liste einfügen
servers.value.push(result)
loading.value = false
return result
}
return {
servers,
loading,
error,
loadServers,
createServer
}
}