feat: 统一sql命名、函数命名
This commit is contained in:
@@ -1,31 +1,48 @@
|
||||
package handler
|
||||
package admin
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"server/internal/model/common"
|
||||
"server/internal/model/request"
|
||||
"server/internal/pkg/httputil"
|
||||
"server/internal/service"
|
||||
"server/internal/router"
|
||||
"server/internal/service/admin"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
type SysApiHandler struct {
|
||||
apiService *service.SysApiService
|
||||
type ApiHandler struct {
|
||||
apiService *admin.ApiService
|
||||
}
|
||||
|
||||
func NewSysApiHandler(apiService *service.SysApiService) *SysApiHandler {
|
||||
return &SysApiHandler{apiService: apiService}
|
||||
var _ router.Registrar = (*ApiHandler)(nil)
|
||||
|
||||
func NewApiHandler(apiService *admin.ApiService) *ApiHandler {
|
||||
return &ApiHandler{apiService: apiService}
|
||||
}
|
||||
|
||||
func (h *SysApiHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *ApiHandler) Register(r chi.Router) {
|
||||
r.Route("/apis", func(r chi.Router) {
|
||||
r.Get("/", h.List)
|
||||
r.Get("/all", h.ListAll)
|
||||
r.Get("/groups", h.ListApiGroups)
|
||||
r.Post("/", h.Create)
|
||||
r.Patch("/{id}", h.Update)
|
||||
r.Delete("/{id}", h.Delete)
|
||||
})
|
||||
}
|
||||
|
||||
func (h *ApiHandler) List(w http.ResponseWriter, r *http.Request) {
|
||||
pagination := httputil.Pagination(r)
|
||||
|
||||
params := request.SearchSysApiParams{
|
||||
params := request.SearchApiParams{
|
||||
Pagination: *pagination,
|
||||
Name: r.URL.Query().Get("name"),
|
||||
GroupName: r.URL.Query().Get("group_name"),
|
||||
Method: r.URL.Query().Get("method"),
|
||||
}
|
||||
|
||||
list, total, err := h.apiService.ListPage(r.Context(), params)
|
||||
result, err := h.apiService.List(r.Context(), params)
|
||||
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
@@ -35,15 +52,15 @@ func (h *SysApiHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
resp := common.PageResponse{
|
||||
Page: pagination.Page,
|
||||
PageSize: pagination.PageSize,
|
||||
List: list,
|
||||
Total: total,
|
||||
List: result.List,
|
||||
Total: result.Total,
|
||||
}
|
||||
|
||||
httputil.OkWithPage(w, &resp)
|
||||
}
|
||||
|
||||
func (h *SysApiHandler) GetAllSysApis(w http.ResponseWriter, r *http.Request) {
|
||||
list, err := h.apiService.GetAllSysApis(r.Context())
|
||||
func (h *ApiHandler) ListAll(w http.ResponseWriter, r *http.Request) {
|
||||
list, err := h.apiService.ListAll(r.Context())
|
||||
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
@@ -53,8 +70,8 @@ func (h *SysApiHandler) GetAllSysApis(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w, list)
|
||||
}
|
||||
|
||||
func (h *SysApiHandler) GetApiGroupNames(w http.ResponseWriter, r *http.Request) {
|
||||
list, err := h.apiService.GetApiGroupNames(r.Context())
|
||||
func (h *ApiHandler) ListApiGroups(w http.ResponseWriter, r *http.Request) {
|
||||
list, err := h.apiService.ListApiGroups(r.Context())
|
||||
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
@@ -64,8 +81,8 @@ func (h *SysApiHandler) GetApiGroupNames(w http.ResponseWriter, r *http.Request)
|
||||
httputil.Ok(w, list)
|
||||
}
|
||||
|
||||
func (h *SysApiHandler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.CreateSysApiRequest
|
||||
func (h *ApiHandler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.CreateApiRequest
|
||||
|
||||
if err := httputil.BindJson(r, &req); err != nil {
|
||||
httputil.Fail(w, err)
|
||||
@@ -80,8 +97,8 @@ func (h *SysApiHandler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w)
|
||||
}
|
||||
|
||||
func (h *SysApiHandler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.UpdateSysApiRequest
|
||||
func (h *ApiHandler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.UpdateApiRequest
|
||||
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
@@ -102,7 +119,7 @@ func (h *SysApiHandler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w)
|
||||
}
|
||||
|
||||
func (h *SysApiHandler) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *ApiHandler) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
@@ -1,4 +1,4 @@
|
||||
package handler
|
||||
package admin
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
@@ -6,19 +6,32 @@ import (
|
||||
"server/internal/model/request"
|
||||
"server/internal/pkg/errs"
|
||||
"server/internal/pkg/httputil"
|
||||
"server/internal/service"
|
||||
"server/internal/router"
|
||||
"server/internal/service/admin"
|
||||
"time"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
type AuthHandler struct {
|
||||
authService *service.AuthService
|
||||
authService *admin.AuthService
|
||||
cfg *config.Config
|
||||
}
|
||||
|
||||
func NewAuthHandler(authService *service.AuthService, cfg *config.Config) *AuthHandler {
|
||||
var _ router.Registrar = (*AuthHandler)(nil)
|
||||
|
||||
func NewAuthHandler(authService *admin.AuthService, cfg *config.Config) *AuthHandler {
|
||||
return &AuthHandler{authService: authService, cfg: cfg}
|
||||
}
|
||||
|
||||
func (h *AuthHandler) Register(r chi.Router) {
|
||||
r.Route("/auth", func(r chi.Router) {
|
||||
r.Post("/login", h.Login)
|
||||
r.Post("/refresh-token", h.RefreshToken)
|
||||
r.Post("/logout", h.Logout)
|
||||
})
|
||||
}
|
||||
|
||||
func (h *AuthHandler) clearRefreshTokenCookie(w http.ResponseWriter) {
|
||||
http.SetCookie(w, &http.Cookie{
|
||||
Name: h.cfg.JWTConfig.CookieName,
|
||||
@@ -1,24 +1,39 @@
|
||||
package handler
|
||||
package admin
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"server/internal/model/common"
|
||||
"server/internal/model/request"
|
||||
"server/internal/pkg/httputil"
|
||||
"server/internal/service"
|
||||
"server/internal/router"
|
||||
"server/internal/service/admin"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
type CategoryHandler struct {
|
||||
categoryService *service.CategoryService
|
||||
categoryService *admin.CategoryService
|
||||
}
|
||||
|
||||
func NewCategoryHandler(categoryService *service.CategoryService) *CategoryHandler {
|
||||
var _ router.Registrar = (*CategoryHandler)(nil)
|
||||
|
||||
func NewCategoryHandler(categoryService *admin.CategoryService) *CategoryHandler {
|
||||
return &CategoryHandler{categoryService: categoryService}
|
||||
}
|
||||
|
||||
func (h *CategoryHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *CategoryHandler) Register(r chi.Router) {
|
||||
r.Route("/categories", func(r chi.Router) {
|
||||
r.Get("/", h.List)
|
||||
r.Get("/all", h.ListAll)
|
||||
r.Post("/", h.Create)
|
||||
r.Patch("/{id}", h.Update)
|
||||
r.Delete("/{id}", h.Delete)
|
||||
})
|
||||
}
|
||||
|
||||
func (h *CategoryHandler) List(w http.ResponseWriter, r *http.Request) {
|
||||
pagination := httputil.Pagination(r)
|
||||
list, total, err := h.categoryService.ListPage(r.Context(), pagination)
|
||||
result, err := h.categoryService.List(r.Context(), pagination)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
@@ -27,8 +42,8 @@ func (h *CategoryHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
resp := common.PageResponse{
|
||||
Page: pagination.Page,
|
||||
PageSize: pagination.PageSize,
|
||||
List: list,
|
||||
Total: total,
|
||||
List: result.List,
|
||||
Total: result.Total,
|
||||
}
|
||||
httputil.OkWithPage(w, &resp)
|
||||
}
|
||||
70
internal/handler/admin/file.go
Normal file
70
internal/handler/admin/file.go
Normal file
@@ -0,0 +1,70 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"server/internal/model/common"
|
||||
"server/internal/pkg/httputil"
|
||||
"server/internal/router"
|
||||
"server/internal/service/admin"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
type FileHandler struct {
|
||||
service *admin.FileService
|
||||
}
|
||||
|
||||
var _ router.Registrar = (*FileHandler)(nil)
|
||||
|
||||
func NewFileHandler(service *admin.FileService) *FileHandler {
|
||||
return &FileHandler{
|
||||
service: service,
|
||||
}
|
||||
}
|
||||
|
||||
func (h *FileHandler) Register(r chi.Router) {
|
||||
r.Route("/files", func(r chi.Router) {
|
||||
r.Get("/", h.List)
|
||||
r.Post("/", h.Upload)
|
||||
})
|
||||
}
|
||||
|
||||
func (h *FileHandler) List(w http.ResponseWriter, r *http.Request) {
|
||||
pagination := httputil.Pagination(r)
|
||||
|
||||
result, err := h.service.List(r.Context(), pagination)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp := common.PageResponse{
|
||||
Page: pagination.Page,
|
||||
PageSize: pagination.PageSize,
|
||||
List: result.List,
|
||||
Total: result.Total,
|
||||
}
|
||||
|
||||
httputil.OkWithPage(w, &resp)
|
||||
}
|
||||
|
||||
func (h *FileHandler) Upload(w http.ResponseWriter, r *http.Request) {
|
||||
folder := r.FormValue("folder")
|
||||
if folder == "" {
|
||||
folder = "/"
|
||||
}
|
||||
|
||||
_, header, err := r.FormFile("file")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
file, err := h.service.Upload(r.Context(), folder, header)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
httputil.Ok(w, file)
|
||||
}
|
||||
@@ -1,25 +1,40 @@
|
||||
package handler
|
||||
package admin
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"server/internal/model/common"
|
||||
"server/internal/model/request"
|
||||
"server/internal/pkg/httputil"
|
||||
"server/internal/service"
|
||||
"server/internal/router"
|
||||
"server/internal/service/admin"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
type SysMenuHandler struct {
|
||||
menuService *service.SysMenuService
|
||||
type MenuHandler struct {
|
||||
menuService *admin.MenuService
|
||||
}
|
||||
|
||||
func NewSysMenuHandler(menuService *service.SysMenuService) *SysMenuHandler {
|
||||
return &SysMenuHandler{menuService: menuService}
|
||||
var _ router.Registrar = (*MenuHandler)(nil)
|
||||
|
||||
func NewMenuHandler(menuService *admin.MenuService) *MenuHandler {
|
||||
return &MenuHandler{menuService: menuService}
|
||||
}
|
||||
|
||||
func (h *SysMenuHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *MenuHandler) Register(r chi.Router) {
|
||||
r.Route("/menus", func(r chi.Router) {
|
||||
r.Get("/", h.List)
|
||||
r.Get("/all", h.ListAll)
|
||||
r.Post("/", h.Create)
|
||||
r.Patch("/{id}", h.Update)
|
||||
r.Delete("/{id}", h.Delete)
|
||||
})
|
||||
}
|
||||
|
||||
func (h *MenuHandler) List(w http.ResponseWriter, r *http.Request) {
|
||||
pagination := httputil.Pagination(r)
|
||||
|
||||
list, total, err := h.menuService.ListPage(r.Context(), pagination)
|
||||
result, err := h.menuService.List(r.Context(), pagination)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
@@ -28,15 +43,15 @@ func (h *SysMenuHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
resp := common.PageResponse{
|
||||
Page: pagination.Page,
|
||||
PageSize: pagination.PageSize,
|
||||
List: list,
|
||||
Total: total,
|
||||
List: result.List,
|
||||
Total: result.Total,
|
||||
}
|
||||
|
||||
httputil.OkWithPage(w, &resp)
|
||||
}
|
||||
|
||||
func (h *SysMenuHandler) GetMenus(w http.ResponseWriter, r *http.Request) {
|
||||
list, err := h.menuService.GetMenus(r.Context())
|
||||
func (h *MenuHandler) ListAll(w http.ResponseWriter, r *http.Request) {
|
||||
list, err := h.menuService.ListAll(r.Context())
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
@@ -45,8 +60,8 @@ func (h *SysMenuHandler) GetMenus(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w, list)
|
||||
}
|
||||
|
||||
func (h *SysMenuHandler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.CreateSysMenuRequest
|
||||
func (h *MenuHandler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.CreateMenuRequest
|
||||
|
||||
if err := httputil.BindJson(r, &req); err != nil {
|
||||
httputil.Fail(w, err)
|
||||
@@ -61,8 +76,8 @@ func (h *SysMenuHandler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w)
|
||||
}
|
||||
|
||||
func (h *SysMenuHandler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.UpdateSysMenuRequest
|
||||
func (h *MenuHandler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.UpdateMenuRequest
|
||||
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
@@ -83,7 +98,7 @@ func (h *SysMenuHandler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w)
|
||||
}
|
||||
|
||||
func (h *SysMenuHandler) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *MenuHandler) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
24
internal/handler/admin/module.go
Normal file
24
internal/handler/admin/module.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"server/internal/router"
|
||||
|
||||
"go.uber.org/fx"
|
||||
)
|
||||
|
||||
var Module = fx.Module("admin-handlers",
|
||||
fx.Provide(
|
||||
// 特殊路由 不用鉴权
|
||||
router.AsRegistrar(router.AdminPublicRoutes, NewAuthHandler),
|
||||
|
||||
router.AsRegistrar(router.AdminRoutes, NewApiHandler),
|
||||
router.AsRegistrar(router.AdminRoutes, NewCategoryHandler),
|
||||
router.AsRegistrar(router.AdminRoutes, NewFileHandler),
|
||||
router.AsRegistrar(router.AdminRoutes, NewMenuHandler),
|
||||
router.AsRegistrar(router.AdminRoutes, NewPostHandler),
|
||||
router.AsRegistrar(router.AdminRoutes, NewRoleHandler),
|
||||
router.AsRegistrar(router.AdminRoutes, NewTagHandler),
|
||||
router.AsRegistrar(router.AdminRoutes, NewUserHandler),
|
||||
router.AsRegistrar(router.AdminRoutes, NewSystemHandler),
|
||||
),
|
||||
)
|
||||
123
internal/handler/admin/post.go
Normal file
123
internal/handler/admin/post.go
Normal file
@@ -0,0 +1,123 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"server/internal/model/common"
|
||||
"server/internal/model/request"
|
||||
"server/internal/pkg/httputil"
|
||||
"server/internal/router"
|
||||
"server/internal/service/admin"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
type PostHandler struct {
|
||||
postService *admin.PostService
|
||||
}
|
||||
|
||||
var _ router.Registrar = (*PostHandler)(nil)
|
||||
|
||||
func NewPostHandler(postService *admin.PostService) *PostHandler {
|
||||
return &PostHandler{postService: postService}
|
||||
}
|
||||
|
||||
func (h *PostHandler) Register(r chi.Router) {
|
||||
r.Route("/posts", func(r chi.Router) {
|
||||
r.Get("/", h.List)
|
||||
r.Get("/{id}", h.GetPostByID)
|
||||
r.Post("/", h.Create)
|
||||
r.Patch("/{id}", h.Update)
|
||||
r.Delete("/{id}", h.Delete)
|
||||
})
|
||||
}
|
||||
|
||||
func (h *PostHandler) List(w http.ResponseWriter, r *http.Request) {
|
||||
pagination := httputil.Pagination(r)
|
||||
|
||||
result, err := h.postService.List(r.Context(), pagination)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
}
|
||||
|
||||
resp := common.PageResponse{
|
||||
Page: pagination.Page,
|
||||
PageSize: pagination.PageSize,
|
||||
List: result.List,
|
||||
Total: result.Total,
|
||||
}
|
||||
|
||||
httputil.OkWithPage(w, &resp)
|
||||
}
|
||||
|
||||
func (h *PostHandler) GetPostByID(w http.ResponseWriter, r *http.Request) {
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
post, err := h.postService.FindByID(r.Context(), id)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
httputil.Ok(w, post)
|
||||
}
|
||||
|
||||
func (h *PostHandler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.CreatePostRequest
|
||||
|
||||
if err := httputil.BindJson(r, &req); err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
postID, err := h.postService.Create(r.Context(), req)
|
||||
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
httputil.Ok(w, map[string]int32{
|
||||
"post_id": postID,
|
||||
})
|
||||
}
|
||||
|
||||
func (h *PostHandler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
var req request.UpdatePostRequest
|
||||
|
||||
if err = httputil.BindJson(r, &req); err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
if err = h.postService.Update(r.Context(), id, req); err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
httputil.Ok(w)
|
||||
}
|
||||
|
||||
func (h *PostHandler) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
if err = h.postService.Delete(r.Context(), id); err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
httputil.Ok(w)
|
||||
}
|
||||
@@ -1,25 +1,44 @@
|
||||
package handler
|
||||
package admin
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"server/internal/model/common"
|
||||
"server/internal/model/request"
|
||||
"server/internal/pkg/httputil"
|
||||
"server/internal/service"
|
||||
"server/internal/router"
|
||||
"server/internal/service/admin"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
type SysRoleHandler struct {
|
||||
roleService *service.SysRoleService
|
||||
type RoleHandler struct {
|
||||
roleService *admin.RoleService
|
||||
}
|
||||
|
||||
func NewSysRoleHandler(roleService *service.SysRoleService) *SysRoleHandler {
|
||||
return &SysRoleHandler{roleService: roleService}
|
||||
var _ router.Registrar = (*RoleHandler)(nil)
|
||||
|
||||
func NewRoleHandler(roleService *admin.RoleService) *RoleHandler {
|
||||
return &RoleHandler{roleService: roleService}
|
||||
}
|
||||
|
||||
func (h *SysRoleHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *RoleHandler) Register(r chi.Router) {
|
||||
r.Route("/roles", func(r chi.Router) {
|
||||
r.Get("/", h.List)
|
||||
r.Get("/{id}/menus", h.ListRoleMenus)
|
||||
r.Get("/{id}/apis", h.ListRoleApis)
|
||||
r.Get("/all", h.ListAll)
|
||||
r.Post("/", h.Create)
|
||||
r.Patch("/{id}", h.Update)
|
||||
r.Put("/{id}/menus", h.SetRoleMenus)
|
||||
r.Put("/{id}/apis", h.SetRoleApis)
|
||||
r.Delete("/{id}", h.Delete)
|
||||
})
|
||||
}
|
||||
|
||||
func (h *RoleHandler) List(w http.ResponseWriter, r *http.Request) {
|
||||
pagination := httputil.Pagination(r)
|
||||
|
||||
list, total, err := h.roleService.ListPage(r.Context(), pagination)
|
||||
result, err := h.roleService.List(r.Context(), pagination)
|
||||
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
@@ -29,21 +48,21 @@ func (h *SysRoleHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
resp := common.PageResponse{
|
||||
Page: pagination.Page,
|
||||
PageSize: pagination.PageSize,
|
||||
List: list,
|
||||
Total: total,
|
||||
List: result.List,
|
||||
Total: result.Total,
|
||||
}
|
||||
|
||||
httputil.OkWithPage(w, &resp)
|
||||
}
|
||||
|
||||
func (h *SysRoleHandler) GetRoleMenus(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *RoleHandler) ListRoleMenus(w http.ResponseWriter, r *http.Request) {
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
list, err := h.roleService.GetRoleMenus(r.Context(), id)
|
||||
list, err := h.roleService.ListRoleMenus(r.Context(), id)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
@@ -52,14 +71,14 @@ func (h *SysRoleHandler) GetRoleMenus(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w, list)
|
||||
}
|
||||
|
||||
func (h *SysRoleHandler) GetRoleApis(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *RoleHandler) ListRoleApis(w http.ResponseWriter, r *http.Request) {
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
list, err := h.roleService.GetRoleApis(r.Context(), id)
|
||||
list, err := h.roleService.ListRoleApis(r.Context(), id)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
@@ -68,8 +87,8 @@ func (h *SysRoleHandler) GetRoleApis(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w, list)
|
||||
}
|
||||
|
||||
func (h *SysRoleHandler) GetRoles(w http.ResponseWriter, r *http.Request) {
|
||||
roles, err := h.roleService.GetRoles(r.Context())
|
||||
func (h *RoleHandler) ListAll(w http.ResponseWriter, r *http.Request) {
|
||||
roles, err := h.roleService.ListAll(r.Context())
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
@@ -78,8 +97,8 @@ func (h *SysRoleHandler) GetRoles(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w, roles)
|
||||
}
|
||||
|
||||
func (h *SysRoleHandler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.CreateSysRoleRequest
|
||||
func (h *RoleHandler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.CreateRoleRequest
|
||||
|
||||
if err := httputil.BindJson(r, &req); err != nil {
|
||||
httputil.Fail(w, err)
|
||||
@@ -94,8 +113,8 @@ func (h *SysRoleHandler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w)
|
||||
}
|
||||
|
||||
func (h *SysRoleHandler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.UpdateSysRoleRequest
|
||||
func (h *RoleHandler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.UpdateRoleRequest
|
||||
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
@@ -116,8 +135,8 @@ func (h *SysRoleHandler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w)
|
||||
}
|
||||
|
||||
func (h *SysRoleHandler) SetRoleMenus(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.SetSysRoleMenusRequest
|
||||
func (h *RoleHandler) SetRoleMenus(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.SetRoleMenusRequest
|
||||
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
@@ -138,8 +157,8 @@ func (h *SysRoleHandler) SetRoleMenus(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w)
|
||||
}
|
||||
|
||||
func (h *SysRoleHandler) SetRoleApis(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.SetSysRoleApisRequest
|
||||
func (h *RoleHandler) SetRoleApis(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.SetRoleApisRequest
|
||||
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
@@ -161,7 +180,7 @@ func (h *SysRoleHandler) SetRoleApis(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
}
|
||||
|
||||
func (h *SysRoleHandler) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *RoleHandler) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
24
internal/handler/admin/system.go
Normal file
24
internal/handler/admin/system.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"server/internal/router"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
type SystemHandler struct {
|
||||
}
|
||||
|
||||
func NewSystemHandler() *SystemHandler {
|
||||
return &SystemHandler{}
|
||||
}
|
||||
|
||||
var _ router.Registrar = (*SystemHandler)(nil)
|
||||
|
||||
func (h *SystemHandler) Register(r chi.Router) {
|
||||
|
||||
}
|
||||
|
||||
func (h *SystemHandler) ListRoutes() {
|
||||
|
||||
}
|
||||
@@ -1,26 +1,41 @@
|
||||
package handler
|
||||
package admin
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"server/internal/model/common"
|
||||
"server/internal/model/request"
|
||||
"server/internal/pkg/httputil"
|
||||
"server/internal/service"
|
||||
"server/internal/router"
|
||||
"server/internal/service/admin"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
type TagHandler struct {
|
||||
tagService *service.TagService
|
||||
tagService *admin.TagService
|
||||
}
|
||||
|
||||
func NewTagHandler(tagService *service.TagService) *TagHandler {
|
||||
var _ router.Registrar = (*TagHandler)(nil)
|
||||
|
||||
func NewTagHandler(tagService *admin.TagService) *TagHandler {
|
||||
return &TagHandler{
|
||||
tagService: tagService,
|
||||
}
|
||||
}
|
||||
|
||||
func (h *TagHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *TagHandler) Register(r chi.Router) {
|
||||
r.Route("/tags", func(r chi.Router) {
|
||||
r.Get("/", h.List)
|
||||
r.Get("/all", h.ListAll)
|
||||
r.Post("/", h.Create)
|
||||
r.Patch("/{id}", h.Update)
|
||||
r.Delete("/{id}", h.Delete)
|
||||
})
|
||||
}
|
||||
|
||||
func (h *TagHandler) List(w http.ResponseWriter, r *http.Request) {
|
||||
pagination := httputil.Pagination(r)
|
||||
list, total, err := h.tagService.ListPage(r.Context(), pagination)
|
||||
result, err := h.tagService.List(r.Context(), pagination)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
@@ -29,9 +44,10 @@ func (h *TagHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
resp := common.PageResponse{
|
||||
Page: pagination.Page,
|
||||
PageSize: pagination.PageSize,
|
||||
List: list,
|
||||
Total: total,
|
||||
List: result.List,
|
||||
Total: result.Total,
|
||||
}
|
||||
|
||||
httputil.OkWithPage(w, &resp)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package handler
|
||||
package admin
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
@@ -7,44 +7,39 @@ import (
|
||||
"server/internal/model/request"
|
||||
"server/internal/pkg/errs"
|
||||
"server/internal/pkg/httputil"
|
||||
"server/internal/service"
|
||||
"server/internal/router"
|
||||
"server/internal/service/admin"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
type SysUserHandler struct {
|
||||
userService *service.SysUserService
|
||||
type UserHandler struct {
|
||||
userService *admin.UserService
|
||||
}
|
||||
|
||||
func NewSysUserHandler(userService *service.SysUserService) *SysUserHandler {
|
||||
return &SysUserHandler{
|
||||
// 编译期接口断言
|
||||
var _ router.Registrar = (*UserHandler)(nil)
|
||||
|
||||
func NewUserHandler(userService *admin.UserService) *UserHandler {
|
||||
return &UserHandler{
|
||||
userService: userService,
|
||||
}
|
||||
}
|
||||
|
||||
func (h *SysUserHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
pagination := httputil.Pagination(r)
|
||||
|
||||
params := request.SearchSysUserParams{
|
||||
Pagination: *pagination,
|
||||
Username: r.URL.Query().Get("username"),
|
||||
}
|
||||
|
||||
list, total, err := h.userService.ListPage(r.Context(), params)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp := common.PageResponse{
|
||||
Page: pagination.Page,
|
||||
PageSize: pagination.PageSize,
|
||||
List: list,
|
||||
Total: total,
|
||||
}
|
||||
|
||||
httputil.OkWithPage(w, &resp)
|
||||
func (h *UserHandler) Register(r chi.Router) {
|
||||
r.Route("/users", func(r chi.Router) {
|
||||
r.Get("/", h.List)
|
||||
r.Get("/me", h.GetCurrentUser)
|
||||
r.Get("/{id}/roles", h.ListRoles)
|
||||
r.Post("/", h.Create)
|
||||
r.Patch("/{id}", h.Update)
|
||||
r.Put("/{id}/roles", h.SetRoles)
|
||||
r.Patch("/{id}/password", h.UpdatePassword)
|
||||
r.Delete("/{id}", h.Delete)
|
||||
})
|
||||
}
|
||||
|
||||
func (h *SysUserHandler) GetUserInfo(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *UserHandler) GetCurrentUser(w http.ResponseWriter, r *http.Request) {
|
||||
claims, ok := middleware.GetClaims(r.Context())
|
||||
|
||||
if !ok || claims.UserID == 0 {
|
||||
@@ -52,10 +47,10 @@ func (h *SysUserHandler) GetUserInfo(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
isAdmin, _ := r.Context().Value(middleware.IsAdminKey).(bool)
|
||||
isAdmin := middleware.IsAdmin(r.Context())
|
||||
uid := claims.UserID
|
||||
|
||||
user, err := h.userService.GetUserInfo(r.Context(), uid, isAdmin)
|
||||
user, err := h.userService.GetCurrentUser(r.Context(), uid, isAdmin)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
@@ -64,14 +59,38 @@ func (h *SysUserHandler) GetUserInfo(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w, user)
|
||||
}
|
||||
|
||||
func (h *SysUserHandler) GetRoles(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *UserHandler) List(w http.ResponseWriter, r *http.Request) {
|
||||
pagination := httputil.Pagination(r)
|
||||
|
||||
params := request.SearchUserParams{
|
||||
Pagination: *pagination,
|
||||
Username: r.URL.Query().Get("username"),
|
||||
}
|
||||
|
||||
result, err := h.userService.List(r.Context(), params)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp := common.PageResponse{
|
||||
Page: pagination.Page,
|
||||
PageSize: pagination.PageSize,
|
||||
List: result.List,
|
||||
Total: result.Total,
|
||||
}
|
||||
|
||||
httputil.OkWithPage(w, &resp)
|
||||
}
|
||||
|
||||
func (h *UserHandler) ListRoles(w http.ResponseWriter, r *http.Request) {
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
list, err := h.userService.GetRoles(r.Context(), id)
|
||||
list, err := h.userService.ListRoles(r.Context(), id)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
@@ -80,8 +99,8 @@ func (h *SysUserHandler) GetRoles(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w, list)
|
||||
}
|
||||
|
||||
func (h *SysUserHandler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.CreateSysUserRequest
|
||||
func (h *UserHandler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.CreateUserRequest
|
||||
|
||||
if err := httputil.BindJson(r, &req); err != nil {
|
||||
httputil.Fail(w, err)
|
||||
@@ -96,8 +115,8 @@ func (h *SysUserHandler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w)
|
||||
}
|
||||
|
||||
func (h *SysUserHandler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.UpdateSysUserRequest
|
||||
func (h *UserHandler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.UpdateUserRequest
|
||||
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
@@ -118,8 +137,8 @@ func (h *SysUserHandler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
httputil.Ok(w)
|
||||
}
|
||||
|
||||
func (h *SysUserHandler) SetRoles(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.SetSysUserRolesRequest
|
||||
func (h *UserHandler) SetRoles(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.SetUserRolesRequest
|
||||
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
@@ -141,8 +160,8 @@ func (h *SysUserHandler) SetRoles(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
}
|
||||
|
||||
func (h *SysUserHandler) UpdatePassword(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.UpdateSysUserPassword
|
||||
func (h *UserHandler) UpdatePassword(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.UpdateUserPassword
|
||||
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
@@ -163,7 +182,7 @@ func (h *SysUserHandler) UpdatePassword(w http.ResponseWriter, r *http.Request)
|
||||
httputil.Ok(w)
|
||||
}
|
||||
|
||||
func (h *SysUserHandler) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *UserHandler) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
@@ -1,22 +1,15 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"server/internal/handler/admin"
|
||||
"server/internal/handler/site"
|
||||
|
||||
"go.uber.org/fx"
|
||||
)
|
||||
|
||||
var Module = fx.Module("handlers",
|
||||
fx.Provide(
|
||||
NewSysUserHandler,
|
||||
NewSysRoleHandler,
|
||||
NewSysMenuHandler,
|
||||
NewSysApiHandler,
|
||||
NewSysFileHandler,
|
||||
NewSysPostHandler,
|
||||
NewCategoryHandler,
|
||||
NewAuthHandler,
|
||||
NewTagHandler,
|
||||
|
||||
NewPostHandler,
|
||||
NewWebHandler,
|
||||
fx.Options(
|
||||
admin.Module,
|
||||
site.Module,
|
||||
),
|
||||
)
|
||||
|
||||
13
internal/handler/site/module.go
Normal file
13
internal/handler/site/module.go
Normal file
@@ -0,0 +1,13 @@
|
||||
package site
|
||||
|
||||
import (
|
||||
"server/internal/router"
|
||||
|
||||
"go.uber.org/fx"
|
||||
)
|
||||
|
||||
var Module = fx.Module("site-handlers",
|
||||
fx.Provide(
|
||||
router.AsRegistrar(router.SiteRoutes, NewPostHandler),
|
||||
),
|
||||
)
|
||||
@@ -1,4 +1,4 @@
|
||||
package handler
|
||||
package site
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
@@ -6,24 +6,34 @@ import (
|
||||
"server/internal/model/common"
|
||||
"server/internal/pkg/errs"
|
||||
"server/internal/pkg/httputil"
|
||||
"server/internal/service"
|
||||
"server/internal/utils"
|
||||
"server/internal/router"
|
||||
"server/internal/service/web"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
var _ router.Registrar = (*PostHandler)(nil)
|
||||
|
||||
type PostHandler struct {
|
||||
postService *service.PostService
|
||||
postService *web.PostService
|
||||
}
|
||||
|
||||
func NewPostHandler(postService *service.PostService) *PostHandler {
|
||||
func (h *PostHandler) Register(r chi.Router) {
|
||||
r.Get("/posts", h.ListPage)
|
||||
r.Get("/posts/{slug}", h.GetPost)
|
||||
r.Get("/categories/stats", h.ListCategoryStats)
|
||||
r.Get("/posts/archives", h.ListArchives)
|
||||
r.Get("/posts/tags", h.ListPostTags)
|
||||
}
|
||||
|
||||
func NewPostHandler(postService *web.PostService) *PostHandler {
|
||||
return &PostHandler{postService: postService}
|
||||
}
|
||||
|
||||
func (h *PostHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
pagination := httputil.Pagination(r)
|
||||
|
||||
list, total, err := h.postService.ListPage(r.Context(), pagination)
|
||||
result, err := h.postService.ListPage(r.Context(), pagination)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
@@ -32,8 +42,8 @@ func (h *PostHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
resp := common.PageResponse{
|
||||
Page: pagination.Page,
|
||||
PageSize: pagination.PageSize,
|
||||
List: list,
|
||||
Total: total,
|
||||
List: result.List,
|
||||
Total: result.Total,
|
||||
}
|
||||
|
||||
httputil.OkWithPage(w, &resp)
|
||||
@@ -47,7 +57,7 @@ func (h *PostHandler) GetPost(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
ip, err := netip.ParseAddr(utils.ClientIP(r))
|
||||
ip, err := netip.ParseAddr(httputil.ClientIP(r))
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
@@ -1,58 +0,0 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"server/internal/model/common"
|
||||
"server/internal/pkg/httputil"
|
||||
"server/internal/service"
|
||||
)
|
||||
|
||||
type SysFileHandler struct {
|
||||
service *service.SysFileService
|
||||
}
|
||||
|
||||
func NewSysFileHandler(service *service.SysFileService) *SysFileHandler {
|
||||
return &SysFileHandler{
|
||||
service: service,
|
||||
}
|
||||
}
|
||||
|
||||
func (h *SysFileHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
pagination := httputil.Pagination(r)
|
||||
|
||||
list, total, err := h.service.ListPage(r.Context(), pagination)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
resp := common.PageResponse{
|
||||
Page: pagination.Page,
|
||||
PageSize: pagination.PageSize,
|
||||
List: list,
|
||||
Total: total,
|
||||
}
|
||||
|
||||
httputil.OkWithPage(w, &resp)
|
||||
}
|
||||
|
||||
func (h *SysFileHandler) Upload(w http.ResponseWriter, r *http.Request) {
|
||||
folder := r.FormValue("folder")
|
||||
if folder == "" {
|
||||
folder = "/"
|
||||
}
|
||||
|
||||
_, header, err := r.FormFile("file")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
file, err := h.service.Upload(r.Context(), folder, header)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
httputil.Ok(w, file)
|
||||
}
|
||||
@@ -1,108 +0,0 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"server/internal/model/common"
|
||||
"server/internal/model/request"
|
||||
"server/internal/pkg/httputil"
|
||||
"server/internal/service"
|
||||
)
|
||||
|
||||
type SysPostHandler struct {
|
||||
sysPostService *service.SysPostService
|
||||
}
|
||||
|
||||
func NewSysPostHandler(postService *service.SysPostService) *SysPostHandler {
|
||||
return &SysPostHandler{sysPostService: postService}
|
||||
}
|
||||
|
||||
func (h *SysPostHandler) ListPage(w http.ResponseWriter, r *http.Request) {
|
||||
pagination := httputil.Pagination(r)
|
||||
|
||||
list, total, err := h.sysPostService.ListPage(r.Context(), pagination)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
}
|
||||
|
||||
resp := common.PageResponse{
|
||||
Page: pagination.Page,
|
||||
PageSize: pagination.PageSize,
|
||||
List: list,
|
||||
Total: total,
|
||||
}
|
||||
|
||||
httputil.OkWithPage(w, &resp)
|
||||
}
|
||||
|
||||
func (h *SysPostHandler) GetPostById(w http.ResponseWriter, r *http.Request) {
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
post, err := h.sysPostService.FindByID(r.Context(), id)
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
httputil.Ok(w, post)
|
||||
}
|
||||
|
||||
func (h *SysPostHandler) Create(w http.ResponseWriter, r *http.Request) {
|
||||
var req request.CreatePostRequest
|
||||
|
||||
if err := httputil.BindJson(r, &req); err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
postID, err := h.sysPostService.Create(r.Context(), req)
|
||||
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
httputil.Ok(w, map[string]int32{
|
||||
"post_id": postID,
|
||||
})
|
||||
}
|
||||
|
||||
func (h *SysPostHandler) Update(w http.ResponseWriter, r *http.Request) {
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
var req request.UpdatePostRequest
|
||||
|
||||
if err = httputil.BindJson(r, &req); err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
if err = h.sysPostService.Update(r.Context(), id, req); err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
httputil.Ok(w)
|
||||
}
|
||||
|
||||
func (h *SysPostHandler) Delete(w http.ResponseWriter, r *http.Request) {
|
||||
id, err := httputil.URLParamInt32(r, "id")
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
if err = h.sysPostService.Delete(r.Context(), id); err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
httputil.Ok(w)
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"server/internal/pkg/httputil"
|
||||
"server/internal/utils"
|
||||
)
|
||||
|
||||
type WebHandler struct {
|
||||
}
|
||||
|
||||
func NewWebHandler() *WebHandler {
|
||||
return &WebHandler{}
|
||||
}
|
||||
|
||||
func (h *WebHandler) GetClientInfo(w http.ResponseWriter, r *http.Request) {
|
||||
ip := utils.ClientIP(r)
|
||||
userAgent := r.UserAgent()
|
||||
|
||||
httputil.Ok(w, map[string]any{
|
||||
"ip": ip,
|
||||
"userAgent": userAgent,
|
||||
"method": r.Method,
|
||||
"host": r.Host,
|
||||
"path": r.URL.Path,
|
||||
"origin": r.Header.Get("Origin"),
|
||||
"accept": r.Header.Get("Accept"),
|
||||
"acceptLanguage": r.Header.Get("Accept-Language"),
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user