~emersion/soju-dev

Make DB.DeleteChannel take the channel ID v1 APPLIED

Hubert Hirtz: 1
 Make DB.DeleteChannel take the channel ID

 2 files changed, 7 insertions(+), 3 deletions(-)
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~emersion/soju-dev/patches/13828/mbox | git am -3
Learn more about email & git
View this thread in the archives

[PATCH] Make DB.DeleteChannel take the channel ID Export this patch

... 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)
-- 
2.28.0
LGTM, pushed, thanks!