Fix archiving and unarchiving functionality.
This commit is contained in:
@@ -6,12 +6,14 @@ package accountMessageHandler
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"database/sql"
|
||||
"errors"
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
templateHandlers "synlotto-website/internal/handlers/template"
|
||||
templateHelpers "synlotto-website/internal/helpers/template"
|
||||
errors "synlotto-website/internal/http/error"
|
||||
httpErrors "synlotto-website/internal/http/error"
|
||||
|
||||
"synlotto-website/internal/logging"
|
||||
"synlotto-website/internal/platform/bootstrap"
|
||||
@@ -104,7 +106,7 @@ func (h *AccountMessageHandlers) ArchivePost(c *gin.Context) {
|
||||
idStr := c.PostForm("id")
|
||||
id, err := strconv.ParseInt(idStr, 10, 64)
|
||||
if err != nil || id <= 0 {
|
||||
errors.RenderStatus(c, sm, http.StatusBadRequest)
|
||||
httpErrors.RenderStatus(c, sm, http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -119,24 +121,32 @@ func (h *AccountMessageHandlers) ArchivePost(c *gin.Context) {
|
||||
c.Redirect(http.StatusSeeOther, "/account/messages")
|
||||
}
|
||||
|
||||
// POST /account/messages/restore
|
||||
func (h *AccountMessageHandlers) RestorePost(c *gin.Context) {
|
||||
// POST /account/messages/archived
|
||||
func (h *AccountMessageHandlers) RestoreArchived(c *gin.Context) {
|
||||
app := c.MustGet("app").(*bootstrap.App)
|
||||
sm := app.SessionManager
|
||||
//userID := mustUserID(c)
|
||||
userID := mustUserID(c)
|
||||
|
||||
idStr := c.PostForm("id")
|
||||
id, err := strconv.ParseInt(idStr, 10, 64)
|
||||
if err != nil || id <= 0 {
|
||||
errors.RenderStatus(c, sm, http.StatusBadRequest)
|
||||
sm.Put(c.Request.Context(), "flash", "Invalid message id.")
|
||||
c.Redirect(http.StatusSeeOther, "/account/messages/archive")
|
||||
return
|
||||
}
|
||||
//
|
||||
// if err := h.Svc.Unarchive(userID, id); err != nil {
|
||||
// logging.Info("❌ Restore error: %v", err)
|
||||
// sm.Put(c.Request.Context(), "flash", "Could not restore message.")
|
||||
// } else {
|
||||
// sm.Put(c.Request.Context(), "flash", "Message restored.")
|
||||
// }
|
||||
c.Redirect(http.StatusSeeOther, "/account/messages/archived")
|
||||
|
||||
if err := h.Svc.Unarchive(userID, id); err != nil {
|
||||
logging.Info("❌ restore/unarchive error: %v", err)
|
||||
// If no rows affected, show friendly flash; otherwise generic message.
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
sm.Put(c.Request.Context(), "flash", "Message not found or not permitted.")
|
||||
} else {
|
||||
sm.Put(c.Request.Context(), "flash", "Could not restore message.")
|
||||
}
|
||||
c.Redirect(http.StatusSeeOther, "/account/messages/archive")
|
||||
return
|
||||
}
|
||||
|
||||
sm.Put(c.Request.Context(), "flash", "Message restored.")
|
||||
c.Redirect(http.StatusSeeOther, "/account/messages/archive")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user