From 7310f67fc71efa9bac008dd5f4527e4e3e97a16a Mon Sep 17 00:00:00 2001 From: Hubert Hirtz Date: Sun, 6 Sep 2020 17:00:42 +0200 Subject: [PATCH] Make DB.DeleteChannel take the channel ID ... to allow the caller to correctly do any necessary casemapping. --- db.go | 4 ++-- user.go | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/db.go b/db.go index 46d04df..1aeccec 100644 --- a/db.go +++ b/db.go @@ -461,10 +461,10 @@ func (db *DB) StoreChannel(networkID int64, ch *Channel) error { return err } -func (db *DB) DeleteChannel(networkID int64, name string) error { +func (db *DB) DeleteChannel(id int64) error { db.lock.Lock() defer db.lock.Unlock() - _, err := db.db.Exec("DELETE FROM Channel WHERE network = ? AND name = ?", networkID, name) + _, err := db.db.Exec("DELETE FROM Channel WHERE id = ?", id) return err } diff --git a/user.go b/user.go index 021e5b6..aded19c 100644 --- a/user.go +++ b/user.go @@ -229,7 +229,11 @@ func (net *network) createUpdateChannel(ch *Channel) error { } func (net *network) deleteChannel(name string) error { - if err := net.user.srv.db.DeleteChannel(net.ID, name); err != nil { + ch, ok := net.channels[name] + if !ok { + return fmt.Errorf("unknown channel %q", name) + } + if err := net.user.srv.db.DeleteChannel(ch.ID); err != nil { return err } delete(net.channels, name)