Full refactor of codebase

This commit is contained in:
Jonas Hahn
2025-09-18 16:51:57 +02:00
parent 0e6e48cd7b
commit 4168e92601
34 changed files with 1176 additions and 1062 deletions

57
src/handlers/user.go Normal file
View File

@@ -0,0 +1,57 @@
package handlers
import (
"log"
"strings"
"github.com/ascyii/qrank/src/repository"
"github.com/ascyii/qrank/src/templates"
"github.com/ascyii/qrank/src/utils"
"github.com/gin-gonic/gin"
)
func getUserView(c *gin.Context) {
slug := c.Param("userSlug")
u := repository.FindUser(slug)
if u == nil {
c.String(404, "User not found")
return
}
// Check if own user
var own bool
if slug == u.Slug {
own = true
}
templates.Render(c, "user", gin.H{"User": u, "Own": own})
}
func getMe(c *gin.Context) {
u := repository.FindUser(c)
templates.Render(c, "user", gin.H{"User": u, "Own": true})
}
func postMe(c *gin.Context) {
u := repository.FindUser(c)
if u == nil {
c.Redirect(302, "/login")
return
}
newU := strings.TrimSpace(c.PostForm("username"))
if newU == "" || newU == u.Username {
c.Redirect(302, "/me")
return
}
// Update username and slug
u.Username = newU
u.Slug = utils.Slugify(newU)
if err := repository.EnsureUniqueUsernameAndSlug(u); err != nil {
log.Println("unique username error:", err)
}
if err := repository.GetDB().Save(u).Error; err != nil {
log.Println("save user:", err)
}
c.Redirect(302, "/me")
}