package handler import ( "net/http" "server/internal/model/common" "server/internal/model/request" "server/internal/pkg/httputil" "server/internal/service" ) type SysRoleHandler struct { roleService *service.SysRoleService } func NewSysRoleHandler(roleService *service.SysRoleService) *SysRoleHandler { return &SysRoleHandler{roleService: roleService} } func (h *SysRoleHandler) ListPage(w http.ResponseWriter, r *http.Request) { pagination := httputil.Pagination(r) list, total, err := h.roleService.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 *SysRoleHandler) GetRoleMenus(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) if err != nil { httputil.Fail(w, err) return } httputil.Ok(w, list) } func (h *SysRoleHandler) GetRoleApis(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) if err != nil { httputil.Fail(w, err) return } httputil.Ok(w, list) } func (h *SysRoleHandler) GetRoles(w http.ResponseWriter, r *http.Request) { roles, err := h.roleService.GetRoles(r.Context()) if err != nil { httputil.Fail(w, err) return } httputil.Ok(w, roles) } func (h *SysRoleHandler) Create(w http.ResponseWriter, r *http.Request) { var req request.CreateSysRoleRequest if err := httputil.BindJson(r, &req); err != nil { httputil.Fail(w, err) return } if err := h.roleService.Create(r.Context(), req); err != nil { httputil.Fail(w, err) return } httputil.Ok(w) } func (h *SysRoleHandler) Update(w http.ResponseWriter, r *http.Request) { var req request.UpdateSysRoleRequest id, err := httputil.URLParamInt32(r, "id") if err != nil { httputil.Fail(w, err) return } if err = httputil.BindJson(r, &req); err != nil { httputil.Fail(w, err) return } if err = h.roleService.Update(r.Context(), id, req); err != nil { httputil.Fail(w, err) return } httputil.Ok(w) } func (h *SysRoleHandler) SetRoleMenus(w http.ResponseWriter, r *http.Request) { var req request.SetSysRoleMenusRequest id, err := httputil.URLParamInt32(r, "id") if err != nil { httputil.Fail(w, err) return } if err = httputil.BindJson(r, &req); err != nil { httputil.Fail(w, err) return } if err = h.roleService.SetRoleMenus(r.Context(), id, req); err != nil { httputil.Fail(w, err) return } httputil.Ok(w) } func (h *SysRoleHandler) SetRoleApis(w http.ResponseWriter, r *http.Request) { var req request.SetSysRoleApisRequest id, err := httputil.URLParamInt32(r, "id") if err != nil { httputil.Fail(w, err) return } if err = httputil.BindJson(r, &req); err != nil { httputil.Fail(w, err) return } if err = h.roleService.SetRoleApis(r.Context(), id, req); err != nil { httputil.Fail(w, err) return } httputil.Ok(w) } func (h *SysRoleHandler) Delete(w http.ResponseWriter, r *http.Request) { id, err := httputil.URLParamInt32(r, "id") if err != nil { httputil.Fail(w, err) return } if err = h.roleService.Delete(r.Context(), id); err != nil { httputil.Fail(w, err) return } httputil.Ok(w) }