From e945222519d62d95f8b1b88a1de4945af86ea363 Mon Sep 17 00:00:00 2001 From: kevin Date: Thu, 4 Jun 2026 01:16:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=B3=E9=94=AE=E5=88=A0=E9=99=A4=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E5=88=97=E8=A1=A8=EF=BC=8C=E5=A5=BD=E5=83=8F=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E4=BA=86=EF=BC=8C=E8=BF=98=E9=9C=80=E8=A6=81=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E5=8F=B3=E9=94=AE=E5=88=A0=E9=99=A4=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + db_test.go | 26 +++++++++ meshmap_frontend/src/App.vue | 33 ++++++++++- meshmap_frontend/src/api.ts | 12 ++++ meshmap_frontend/src/components/ChatPanel.vue | 52 ++++++++++++++++- meshmap_frontend/src/components/MeshMap.vue | 10 +++- .../src/components/NodeListPanel.vue | 56 ++++++++++++++++++- meshmap_frontend/src/style.css | 29 ++++++++++ store_query.go | 28 ++++++++++ web.go | 30 ++++++++++ 10 files changed, 272 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b82be51..fafc85f 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,7 @@ GET /api/admin/log/login GET /api/admin/users POST /api/admin/users PUT /api/admin/users/:id/password +DELETE /api/admin/text-messages/:id GET /api/nodeinfo GET /api/nodeinfo/:id GET /api/map-reports diff --git a/db_test.go b/db_test.go index 413b4d9..3e25fd3 100644 --- a/db_test.go +++ b/db_test.go @@ -361,6 +361,32 @@ func TestInsertTextMessageAppendsRows(t *testing.T) { } } +func TestDeleteTextMessageDeletesRows(t *testing.T) { + st := openTestStore(t) + defer st.Close() + + if err := st.InsertTextMessage(textMessageTestRecord("hello"), mqttClientInfo{}); err != nil { + t.Fatalf("InsertTextMessage() error = %v", err) + } + var id uint64 + if err := rawTestDB(t, st).QueryRow("SELECT id FROM text_message LIMIT 1").Scan(&id); err != nil { + t.Fatal(err) + } + if err := st.DeleteTextMessage(id); err != nil { + t.Fatalf("DeleteTextMessage() error = %v", err) + } + var count int + if err := rawTestDB(t, st).QueryRow("SELECT COUNT(*) FROM text_message WHERE id = ?", id).Scan(&count); err != nil { + t.Fatal(err) + } + if count != 0 { + t.Fatalf("text_message count = %d, want 0", count) + } + if err := st.DeleteTextMessage(id); !errors.Is(err, gorm.ErrRecordNotFound) { + t.Fatalf("DeleteTextMessage(missing) error = %v, want record not found", err) + } +} + func TestInsertTextMessageStoresClientInfo(t *testing.T) { st := openTestStore(t) defer st.Close() diff --git a/meshmap_frontend/src/App.vue b/meshmap_frontend/src/App.vue index 55d2ea2..e429bde 100644 --- a/meshmap_frontend/src/App.vue +++ b/meshmap_frontend/src/App.vue @@ -1,6 +1,6 @@