dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit be3b394a9509df295a82d0eae98bf004eaf05b4a
parent 70cad7826ab5ee888301f787af0ad6927b9a8ef6
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Tue, 23 May 2023 23:09:48 -0700

fix delete messages for stream

Diffstat:
Mpkg/database/tableChatMessages.go | 6++++++
Mpkg/web/handlers/api/v1/chess.go | 2+-
Mpkg/web/handlers/api/v1/handlers.go | 4+---
Mpkg/web/handlers/api/v1/slashInterceptor.go | 6+++---
4 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/pkg/database/tableChatMessages.go b/pkg/database/tableChatMessages.go @@ -223,6 +223,12 @@ func (m *ChatMessage) MsgToDisplay() string { return m.Message } +func (m *ChatMessage) Delete(db *DkfDB) error { + err := db.DeleteChatMessageByUUID(m.UUID) + MsgPubSub.Pub("room_"+m.RoomID.String(), ChatMessageType{Typ: DeleteMsg, Msg: m}) + return err +} + func (m *ChatMessage) DoSave(db *DkfDB) { if err := db.db.Save(m).Error; err != nil { logrus.Error(err) diff --git a/pkg/web/handlers/api/v1/chess.go b/pkg/web/handlers/api/v1/chess.go @@ -476,7 +476,7 @@ func (b *Chess) SendMove(gameKey string, userID database.UserID, g *ChessGame, c chatMsg, _ := b.db.CreateMsg(msg, msg, "", config.GeneralRoomID, b.zeroID, &opponent.ID) go func() { time.Sleep(30 * time.Second) - _ = b.db.DeleteChatMessageByUUID(chatMsg.UUID) + _ = chatMsg.Delete(b.db) }() } diff --git a/pkg/web/handlers/api/v1/handlers.go b/pkg/web/handlers/api/v1/handlers.go @@ -511,12 +511,10 @@ func ChatDeleteMessageHandler(c echo.Context) error { // If we delete message manually, also delete linked inbox if any _ = db.DeleteChatInboxMessageByChatMessageID(msg.ID) - if err := db.DeleteChatMessageByUUID(msg.UUID); err != nil { + if err := msg.Delete(db); err != nil { logrus.Error(err) } - database.MsgPubSub.Pub("room_"+msg.RoomID.String(), database.ChatMessageType{Typ: database.DeleteMsg, Msg: &msg}) - return c.Redirect(http.StatusFound, c.Request().Referer()) } diff --git a/pkg/web/handlers/api/v1/slashInterceptor.go b/pkg/web/handlers/api/v1/slashInterceptor.go @@ -1312,7 +1312,7 @@ func handleDeleteMsgCmd(c *Command) (handled bool) { msg.User.GeneralMessagesCount-- msg.User.DoSave(c.db) } - _ = c.db.DeleteChatMessageByUUID(msg.UUID) + _ = msg.Delete(c.db) } if c.message == "/d" { if msg, err := c.db.GetUserLastChatMessageInRoom(c.authUser.ID, c.room.ID); err != nil { @@ -1362,7 +1362,7 @@ func handleDeleteMsgCmd(c *Command) (handled bool) { return true } // Moderator - _ = c.db.DeleteChatMessageByUUID(msg.UUID) + _ = msg.Delete(c.db) c.err = ErrRedirect return true @@ -1405,7 +1405,7 @@ func handleDeleteMsgCmd(c *Command) (handled bool) { c.err = errors.New("failed to find msg") return true } - _ = c.db.DeleteChatMessageByUUID(msg.UUID) + _ = msg.Delete(c.db) c.err = ErrRedirect return true }