This commit is contained in:
2025-12-14 16:43:21 +01:00
parent 60bedab4a5
commit 7a135028ac
5 changed files with 17 additions and 7 deletions

3
.idea/dataSources.xml generated
View File

@@ -4,8 +4,9 @@
<data-source source="LOCAL" name="oxspeak.db" uuid="6f1740ef-4686-4ce9-b224-e6b0fd312908"> <data-source source="LOCAL" name="oxspeak.db" uuid="6f1740ef-4686-4ce9-b224-e6b0fd312908">
<driver-ref>sqlite.xerial</driver-ref> <driver-ref>sqlite.xerial</driver-ref>
<synchronize>true</synchronize> <synchronize>true</synchronize>
<configured-by-url>true</configured-by-url>
<jdbc-driver>org.sqlite.JDBC</jdbc-driver> <jdbc-driver>org.sqlite.JDBC</jdbc-driver>
<jdbc-url>jdbc:sqlite:file:\\wsl$\Debian\home\Nell\linux_dev\unix_oxspeak_server_v2\oxspeak.db?nolock=1</jdbc-url> <jdbc-url>jdbc:sqlite:.\oxspeak.db</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir> <working-dir>$ProjectFileDir$</working-dir>
</data-source> </data-source>
</component> </component>

View File

@@ -26,6 +26,10 @@ let form_inputs = ref({
async function create_server(){ async function create_server(){
const response = await fetch("/api/server/servers/", { const response = await fetch("/api/server/servers/", {
method: 'POST', method: 'POST',
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
},
body: JSON.stringify(form_inputs.value) body: JSON.stringify(form_inputs.value)
}) })
if (response.ok) { if (response.ok) {

View File

@@ -1,15 +1,19 @@
<template> <template>
<div>
<div> <div>
{{server}} {{server}}
<button @click="remove">Remove</button>
</div> </div>
<button @click="remove">Remove</button>/
</div>
</template> </template>
<script setup> <script setup>
import {ref} from "vue"; import {ref, onMounted} from "vue";
// defined constants // defined constants
const props = defineProps({ const {server} = defineProps({
server: { server: {
type: Object, type: Object,
required: true required: true
@@ -19,7 +23,7 @@ const emit = defineEmits(['remove'])
// defined methods // defined methods
async function remove(){ async function remove(){
const response = await fetch("/api/server/servers/", { const response = await fetch(`/api/server/servers/${server.id}/`, {
method: 'DELETE' method: 'DELETE'
}) })
if (response.ok) { if (response.ok) {

View File

@@ -6,6 +6,7 @@
v-for="server in servers" v-for="server in servers"
:server="server" :server="server"
:key="server.id" :key="server.id"
@remove="servers.splice(servers.indexOf(server), 1)"
/> />
</template> </template>

View File

@@ -13,7 +13,7 @@ pub fn setup_route() -> AppRouter {
AppRouter::new() AppRouter::new()
.route("/servers/", get(server_list)) .route("/servers/", get(server_list))
.route("/servers/{id}/", get(server_detail)) .route("/servers/{id}/", get(server_detail))
.route("/servers/{id}/", post(server_create)) .route("/servers/", post(server_create))
.route("/servers/{id}/", put(server_update)) .route("/servers/{id}/", put(server_update))
.route("/servers/{id}/", delete(server_delete)) .route("/servers/{id}/", delete(server_delete))
} }