frontend: createServer moved to useServer
This commit is contained in:
parent
43de7bc9b5
commit
6a78f8b1ec
2 changed files with 37 additions and 13 deletions
|
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue