frontend: createServer moved to useServer

This commit is contained in:
Frank Agerholm 2026-01-25 20:15:58 +01:00
commit 6a78f8b1ec
No known key found for this signature in database
2 changed files with 37 additions and 13 deletions

View file

@ -24,10 +24,37 @@ export function useServers() {
return result 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 { return {
servers, servers,
loading, loading,
error, error,
loadServers loadServers,
createServer
} }
} }

View file

@ -8,7 +8,7 @@ import { ref, onMounted } from "vue"
import { isUnauthorized } from "~/utils/auth" import { isUnauthorized } from "~/utils/auth"
const { apiFetch } = useApi() const { apiFetch } = useApi()
const { servers, loadServers } = useServers() const { servers, loadServers, createServer } = useServers()
const { owners, loadOwners } = useOwners() const { owners, loadOwners } = useOwners()
const newServer = ref({ const newServer = ref({
@ -65,23 +65,20 @@ async function saveEdit(serverId: number) {
} }
} }
async function createServer() { async function save() {
if (!newServer.value.hostname.trim()) return if (!newServer.value.hostname.trim()) return
try { try {
const server = await apiFetch("/servers", { const server = await createServer(
method: "POST", newServer.value.hostname,
body: { newServer.value.description,
hostname: newServer.value.hostname, newServer.value.owner_id
description: newServer.value.description, )
owner_id: newServer.value.owner_id
}
})
if (isUnauthorized(server)) { if (isUnauthorized(server)) {
return server return server
} }
servers.value.push(server) // clear form
newServer.value = { hostname: "", description: "" } newServer.value = { hostname: "", description: "" }
} catch (e: any) { } catch (e: any) {
error.value = e.message error.value = e.message
@ -223,7 +220,7 @@ onMounted(async () => {
</select> </select>
<button @click="createServer" <button @click="save"
class="bg-blue-600 text-white px-4 py-2 rounded hover:bg-blue-700 self-start"> class="bg-blue-600 text-white px-4 py-2 rounded hover:bg-blue-700 self-start">
Speichern Speichern
</button> </button>