dkforest

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

commit 87d4b13b28dd8ef61a16ae8ef7f6733414904ed8
parent 35435eb9b64511d3f9384e0b9031371c753a9e63
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Sun, 15 Jan 2023 20:51:42 -0800

cleanup

Diffstat:
Mpkg/database/tableChatRooms.go | 6++++++
Mpkg/database/utils/utils.go | 13+++++++++++++
Mpkg/web/handlers/admin.go | 10++--------
Mpkg/web/handlers/api/v1/handlers.go | 2+-
Mpkg/web/handlers/handlers.go | 6+-----
5 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/pkg/database/tableChatRooms.go b/pkg/database/tableChatRooms.go @@ -128,6 +128,12 @@ func GetChatRoomByName(roomName string) (out ChatRoom, err error) { return } +func DeleteChatRoomByID(id RoomID) { + if err := DB.Unscoped().Delete(ChatRoom{}, "id = ?", id).Error; err != nil { + logrus.Error(err) + } +} + type ChatRoomAug struct { ChatRoom OwnerUser *User `gorm:"embedded"` // https://gorm.io/docs/models.html#Embedded-Struct diff --git a/pkg/database/utils/utils.go b/pkg/database/utils/utils.go @@ -70,6 +70,19 @@ func DoParseUserID(v string) (out database.UserID) { return } +func ParseRoomID(v string) (database.RoomID, error) { + p, err := utils.ParseInt64(v) + if err != nil { + return 0, err + } + return database.RoomID(p), nil +} + +func DoParseRoomID(v string) (out database.RoomID) { + out, _ = ParseRoomID(v) + return +} + func Kick(kicked, kickedBy database.User, purge, silent bool) error { if kicked.IsHellbanned { silent = true diff --git a/pkg/web/handlers/admin.go b/pkg/web/handlers/admin.go @@ -431,14 +431,8 @@ func IgnoredDeleteHandler(c echo.Context) error { // AdminDeleteRoomHandler ... func AdminDeleteRoomHandler(c echo.Context) error { - id, err := strconv.Atoi(c.Param("roomID")) - if err != nil { - return c.Render(http.StatusOK, "flash", - FlashResponse{"room id not found", c.Request().Referer(), "alert-danger"}) - } - if err := database.DB.Unscoped().Delete(database.ChatRoom{}, "id = ?", id).Error; err != nil { - logrus.Error(err) - } + id := dutils.DoParseRoomID(c.Param("roomID")) + database.DeleteChatRoomByID(id) return c.Redirect(http.StatusFound, c.Request().Referer()) } diff --git a/pkg/web/handlers/api/v1/handlers.go b/pkg/web/handlers/api/v1/handlers.go @@ -177,7 +177,7 @@ func ChatMessagesHandler(c echo.Context) error { func RoomNotifierHandler(c echo.Context) error { authUser := c.Get("authUser").(*database.User) - roomID := database.RoomID(utils.DoParseInt64(c.Param("roomID"))) + roomID := dutils.DoParseRoomID(c.Param("roomID")) lastKnownDate := c.Request().PostFormValue("last_known_date") room, err := database.GetChatRoomByID(roomID) diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go @@ -3081,11 +3081,7 @@ func ChatDeleteHandler(c echo.Context) error { if room.IsProtected() { hutils.DeleteRoomCookie(c, int64(room.ID)) } - room.Name = room.Name + "_" + utils.FormatInt64(time.Now().Unix()) - room.DoSave() - if err := database.DB.Delete(&room).Error; err != nil { - logrus.Error(err) - } + database.DeleteChatRoomByID(room.ID) return c.Redirect(http.StatusFound, "/chat") }