commit ca90364b693172ee9c386f1879567173d6cb825e
parent 538f917d0dc76af02fb3dc1566f5120271ae4839
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Thu, 2 Mar 2023 20:50:28 -0800
cleanup
Diffstat:
2 files changed, 128 insertions(+), 119 deletions(-)
diff --git a/pkg/web/handlers/club.go b/pkg/web/handlers/club.go
@@ -0,0 +1,128 @@
+package handlers
+
+import (
+ "dkforest/pkg/database"
+ "dkforest/pkg/utils"
+ "github.com/asaskevich/govalidator"
+ "github.com/labstack/echo"
+ "net/http"
+)
+
+func ClubHandler(c echo.Context) error {
+ authUser := c.Get("authUser").(*database.User)
+ var data clubData
+ data.ActiveTab = "home"
+ data.ForumThreads, _ = database.GetClubForumThreads(authUser.ID)
+ return c.Render(http.StatusOK, "club.home", data)
+}
+
+func ClubNewThreadHandler(c echo.Context) error {
+ authUser := c.Get("authUser").(*database.User)
+ var data clubNewThreadData
+ data.ActiveTab = "home"
+
+ if c.Request().Method == http.MethodPost {
+ data.ThreadName = c.Request().PostFormValue("thread_name")
+ data.Message = c.Request().PostFormValue("message")
+ if !govalidator.RuneLength(data.ThreadName, "3", "255") {
+ data.ErrorThreadName = "Thread name must have 3-255 characters"
+ return c.Render(http.StatusOK, "club.new-thread", data)
+ }
+ if !govalidator.RuneLength(data.Message, "3", "10000") {
+ data.ErrorMessage = "Thread name must have at least 3 characters"
+ return c.Render(http.StatusOK, "club.new-thread", data)
+ }
+ thread := database.MakeForumThread(data.ThreadName, authUser.ID, 0)
+ database.DB.Create(&thread)
+ message := database.MakeForumMessage(data.Message, authUser.ID, thread.ID)
+ database.DB.Create(&message)
+ return c.Redirect(http.StatusFound, "/club/threads/"+utils.FormatInt64(int64(thread.ID)))
+ }
+
+ return c.Render(http.StatusOK, "club.new-thread", data)
+}
+
+func ClubThreadReplyHandler(c echo.Context) error {
+ authUser := c.Get("authUser").(*database.User)
+ threadID := database.ForumThreadID(utils.DoParseInt64(c.Param("threadID")))
+ thread, err := database.GetForumThread(threadID)
+ if err != nil {
+ return c.Redirect(http.StatusFound, "/")
+ }
+ var data clubNewThreadReplyData
+ data.ActiveTab = "home"
+ data.Thread = thread
+
+ if c.Request().Method == http.MethodPost {
+ data.Message = c.Request().PostFormValue("message")
+ if !govalidator.RuneLength(data.Message, "3", "10000") {
+ data.ErrorMessage = "Message must have at least 3 characters"
+ return c.Render(http.StatusOK, "club.new-thread", data)
+ }
+ message := database.MakeForumMessage(data.Message, authUser.ID, thread.ID)
+ database.DB.Create(&message)
+ return c.Redirect(http.StatusFound, "/club/threads/"+utils.FormatInt64(int64(thread.ID)))
+ }
+
+ return c.Render(http.StatusOK, "club.thread-reply", data)
+}
+
+func ClubThreadEditMessageHandler(c echo.Context) error {
+ authUser := c.Get("authUser").(*database.User)
+ threadID := database.ForumThreadID(utils.DoParseInt64(c.Param("threadID")))
+ messageID := database.ForumMessageID(utils.DoParseInt64(c.Param("messageID")))
+ thread, err := database.GetForumThread(threadID)
+ if err != nil {
+ return c.Redirect(http.StatusFound, "/")
+ }
+ msg, err := database.GetForumMessage(messageID)
+ if err != nil {
+ return c.Redirect(http.StatusFound, "/")
+ }
+ if msg.UserID != authUser.ID && !authUser.IsAdmin {
+ return c.Redirect(http.StatusFound, "/")
+ }
+ var data clubNewThreadReplyData
+ data.ActiveTab = "home"
+ data.IsEdit = true
+ data.Thread = thread
+ data.Message = msg.Message
+
+ if c.Request().Method == http.MethodPost {
+ data.Message = c.Request().PostFormValue("message")
+ if !govalidator.RuneLength(data.Message, "3", "10000") {
+ data.ErrorMessage = "Message must have at least 3 characters"
+ return c.Render(http.StatusOK, "club.new-thread", data)
+ }
+ msg.Message = data.Message
+ msg.DoSave()
+ return c.Redirect(http.StatusFound, "/club/threads/"+utils.FormatInt64(int64(thread.ID)))
+ }
+
+ return c.Render(http.StatusOK, "club.thread-reply", data)
+}
+
+func ClubMembersHandler(c echo.Context) error {
+ var data clubMembersData
+ data.ActiveTab = "members"
+ data.Members, _ = database.GetClubMembers()
+ return c.Render(http.StatusOK, "club.members", data)
+}
+
+func ClubThreadHandler(c echo.Context) error {
+ authUser := c.Get("authUser").(*database.User)
+ threadID := database.ForumThreadID(utils.DoParseInt64(c.Param("threadID")))
+ thread, err := database.GetForumThread(threadID)
+ if err != nil {
+ return c.Redirect(http.StatusFound, "/")
+ }
+ var data clubThreadData
+ data.ActiveTab = "home"
+ data.Thread = thread
+ data.Messages, _ = database.GetThreadMessages(threadID)
+
+ // Update read record
+ database.UpdateForumReadRecord(authUser.ID, threadID)
+
+ return c.Render(http.StatusOK, "club.thread", data)
+}
diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go
@@ -1880,14 +1880,6 @@ func WerewolfHandler(c echo.Context) error {
return c.Render(http.StatusOK, "werewolf", nil)
}
-func ClubHandler(c echo.Context) error {
- authUser := c.Get("authUser").(*database.User)
- var data clubData
- data.ActiveTab = "home"
- data.ForumThreads, _ = database.GetClubForumThreads(authUser.ID)
- return c.Render(http.StatusOK, "club.home", data)
-}
-
func ThreadReplyHandler(c echo.Context) error {
if config.ForumEnabled.IsFalse() {
return c.Render(http.StatusOK, "flash", FlashResponse{Message: "Forum is temporarily disabled", Redirect: "/", Type: "alert-danger"})
@@ -1936,31 +1928,6 @@ func ThreadReplyHandler(c echo.Context) error {
return c.Render(http.StatusOK, "thread-reply", data)
}
-func ClubThreadReplyHandler(c echo.Context) error {
- authUser := c.Get("authUser").(*database.User)
- threadID := database.ForumThreadID(utils.DoParseInt64(c.Param("threadID")))
- thread, err := database.GetForumThread(threadID)
- if err != nil {
- return c.Redirect(http.StatusFound, "/")
- }
- var data clubNewThreadReplyData
- data.ActiveTab = "home"
- data.Thread = thread
-
- if c.Request().Method == http.MethodPost {
- data.Message = c.Request().PostFormValue("message")
- if !govalidator.RuneLength(data.Message, "3", "10000") {
- data.ErrorMessage = "Message must have at least 3 characters"
- return c.Render(http.StatusOK, "club.new-thread", data)
- }
- message := database.MakeForumMessage(data.Message, authUser.ID, thread.ID)
- database.DB.Create(&message)
- return c.Redirect(http.StatusFound, "/club/threads/"+utils.FormatInt64(int64(thread.ID)))
- }
-
- return c.Render(http.StatusOK, "club.thread-reply", data)
-}
-
func ThreadDeleteMessageHandler(c echo.Context) error {
if config.ForumEnabled.IsFalse() {
return c.Render(http.StatusOK, "flash", FlashResponse{Message: "Forum is temporarily disabled", Redirect: "/", Type: "alert-danger"})
@@ -2204,41 +2171,6 @@ func ThreadRawMessageHandler(c echo.Context) error {
return c.String(http.StatusOK, msg.Message)
}
-func ClubThreadEditMessageHandler(c echo.Context) error {
- authUser := c.Get("authUser").(*database.User)
- threadID := database.ForumThreadID(utils.DoParseInt64(c.Param("threadID")))
- messageID := database.ForumMessageID(utils.DoParseInt64(c.Param("messageID")))
- thread, err := database.GetForumThread(threadID)
- if err != nil {
- return c.Redirect(http.StatusFound, "/")
- }
- msg, err := database.GetForumMessage(messageID)
- if err != nil {
- return c.Redirect(http.StatusFound, "/")
- }
- if msg.UserID != authUser.ID && !authUser.IsAdmin {
- return c.Redirect(http.StatusFound, "/")
- }
- var data clubNewThreadReplyData
- data.ActiveTab = "home"
- data.IsEdit = true
- data.Thread = thread
- data.Message = msg.Message
-
- if c.Request().Method == http.MethodPost {
- data.Message = c.Request().PostFormValue("message")
- if !govalidator.RuneLength(data.Message, "3", "10000") {
- data.ErrorMessage = "Message must have at least 3 characters"
- return c.Render(http.StatusOK, "club.new-thread", data)
- }
- msg.Message = data.Message
- msg.DoSave()
- return c.Redirect(http.StatusFound, "/club/threads/"+utils.FormatInt64(int64(thread.ID)))
- }
-
- return c.Render(http.StatusOK, "club.thread-reply", data)
-}
-
func isForumSpam(msg string) bool {
if strings.Contains(strings.ToLower(msg), "profjerry") {
return true
@@ -2285,57 +2217,6 @@ func NewThreadHandler(c echo.Context) error {
return c.Render(http.StatusOK, "new-thread", data)
}
-func ClubNewThreadHandler(c echo.Context) error {
- authUser := c.Get("authUser").(*database.User)
- var data clubNewThreadData
- data.ActiveTab = "home"
-
- if c.Request().Method == http.MethodPost {
- data.ThreadName = c.Request().PostFormValue("thread_name")
- data.Message = c.Request().PostFormValue("message")
- if !govalidator.RuneLength(data.ThreadName, "3", "255") {
- data.ErrorThreadName = "Thread name must have 3-255 characters"
- return c.Render(http.StatusOK, "club.new-thread", data)
- }
- if !govalidator.RuneLength(data.Message, "3", "10000") {
- data.ErrorMessage = "Thread name must have at least 3 characters"
- return c.Render(http.StatusOK, "club.new-thread", data)
- }
- thread := database.MakeForumThread(data.ThreadName, authUser.ID, 0)
- database.DB.Create(&thread)
- message := database.MakeForumMessage(data.Message, authUser.ID, thread.ID)
- database.DB.Create(&message)
- return c.Redirect(http.StatusFound, "/club/threads/"+utils.FormatInt64(int64(thread.ID)))
- }
-
- return c.Render(http.StatusOK, "club.new-thread", data)
-}
-
-func ClubMembersHandler(c echo.Context) error {
- var data clubMembersData
- data.ActiveTab = "members"
- data.Members, _ = database.GetClubMembers()
- return c.Render(http.StatusOK, "club.members", data)
-}
-
-func ClubThreadHandler(c echo.Context) error {
- authUser := c.Get("authUser").(*database.User)
- threadID := database.ForumThreadID(utils.DoParseInt64(c.Param("threadID")))
- thread, err := database.GetForumThread(threadID)
- if err != nil {
- return c.Redirect(http.StatusFound, "/")
- }
- var data clubThreadData
- data.ActiveTab = "home"
- data.Thread = thread
- data.Messages, _ = database.GetThreadMessages(threadID)
-
- // Update read record
- database.UpdateForumReadRecord(authUser.ID, threadID)
-
- return c.Render(http.StatusOK, "club.thread", data)
-}
-
func VipHandler(c echo.Context) error {
var data vipData
data.ActiveTab = "home"