prompt 8
This commit is contained in:
71
internal/controllers/admin_controller.go
Normal file
71
internal/controllers/admin_controller.go
Normal file
@@ -0,0 +1,71 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"html/template"
|
||||
|
||||
"trustcontact/internal/services"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
||||
type AdminController struct {
|
||||
usersService *services.UsersService
|
||||
}
|
||||
|
||||
func NewAdminController(usersService *services.UsersService) *AdminController {
|
||||
return &AdminController{usersService: usersService}
|
||||
}
|
||||
|
||||
func (ac *AdminController) Dashboard(c *fiber.Ctx) error {
|
||||
viewData := map[string]any{
|
||||
"Title": "Admin Dashboard",
|
||||
"NavSection": "admin",
|
||||
}
|
||||
for k, v := range localsTemplateData(c) {
|
||||
viewData[k] = v
|
||||
}
|
||||
|
||||
tmpl, err := template.ParseFiles(
|
||||
"web/templates/layout.html",
|
||||
"web/templates/public/_flash.html",
|
||||
"web/templates/admin/dashboard.html",
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return executeLayout(c, tmpl, viewData)
|
||||
}
|
||||
|
||||
func (ac *AdminController) Users(c *fiber.Ctx) error {
|
||||
pageData, err := ac.usersService.List(services.UsersQuery{
|
||||
Q: c.Query("q"),
|
||||
Sort: c.Query("sort", "id"),
|
||||
Dir: c.Query("dir", "asc"),
|
||||
Page: parseIntOrDefault(c.Query("page"), 1),
|
||||
PageSize: parseIntOrDefault(c.Query("pageSize"), 20),
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
viewData := map[string]any{
|
||||
"Title": "Admin Users",
|
||||
"NavSection": "admin",
|
||||
"PageData": pageData,
|
||||
}
|
||||
for k, v := range localsTemplateData(c) {
|
||||
viewData[k] = v
|
||||
}
|
||||
|
||||
tmpl, err := template.ParseFiles(
|
||||
"web/templates/layout.html",
|
||||
"web/templates/public/_flash.html",
|
||||
"web/templates/admin/users.html",
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return executeLayout(c, tmpl, viewData)
|
||||
}
|
||||
Reference in New Issue
Block a user