Init
This commit is contained in:
66
internal/web/handler.go
Normal file
66
internal/web/handler.go
Normal file
@@ -0,0 +1,66 @@
|
||||
package web
|
||||
|
||||
import (
|
||||
"ResendIt/internal/file"
|
||||
"strconv"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type Handler struct {
|
||||
fileService *file.Service
|
||||
}
|
||||
|
||||
func NewHandler(fileService *file.Service) *Handler {
|
||||
return &Handler{
|
||||
fileService: fileService,
|
||||
}
|
||||
}
|
||||
|
||||
// Homepage
|
||||
func (h *Handler) Index(c *gin.Context) {
|
||||
c.HTML(200, "index.html", gin.H{
|
||||
"title": "Home",
|
||||
})
|
||||
}
|
||||
|
||||
// Upload page
|
||||
func (h *Handler) UploadPage(c *gin.Context) {
|
||||
c.HTML(200, "upload.html", nil)
|
||||
}
|
||||
|
||||
func (h *Handler) LoginPage(c *gin.Context) {
|
||||
c.HTML(200, "login.html", nil)
|
||||
}
|
||||
|
||||
func (h *Handler) AdminPage(c *gin.Context) {
|
||||
pageStr := c.Query("page")
|
||||
page, err := strconv.Atoi(pageStr)
|
||||
if err != nil || page < 1 {
|
||||
page = 1
|
||||
}
|
||||
|
||||
limit := 10
|
||||
offset := (page - 1) * limit
|
||||
|
||||
files, totalCount, err := h.fileService.GetPaginatedFiles(limit, offset)
|
||||
if err != nil {
|
||||
c.HTML(500, "admin.html", gin.H{
|
||||
"error": err.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
totalPages := (totalCount + limit - 1) / limit
|
||||
|
||||
c.HTML(200, "admin.html", gin.H{
|
||||
"Files": files,
|
||||
"Page": page,
|
||||
"TotalPages": totalPages,
|
||||
})
|
||||
}
|
||||
|
||||
func (h *Handler) Logout(c *gin.Context) {
|
||||
c.SetCookie("auth_token", "", -1, "/", "", false, true)
|
||||
c.Redirect(302, "/")
|
||||
}
|
||||
20
internal/web/routes.go
Normal file
20
internal/web/routes.go
Normal file
@@ -0,0 +1,20 @@
|
||||
package web
|
||||
|
||||
import (
|
||||
"ResendIt/internal/api/middleware"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func RegisterRoutes(r *gin.Engine, h *Handler) {
|
||||
r.GET("/", h.Index)
|
||||
r.GET("/upload", h.UploadPage)
|
||||
r.GET("/login", h.LoginPage)
|
||||
|
||||
adminRoutes := r.Group("/")
|
||||
adminRoutes.Use(middleware.AuthMiddleware())
|
||||
adminRoutes.Use(middleware.RequireRole("admin"))
|
||||
|
||||
adminRoutes.GET("/admin", h.AdminPage)
|
||||
adminRoutes.GET("/logout", h.Logout)
|
||||
}
|
||||
Reference in New Issue
Block a user