generated from NSObjects/go-template
/
menu.go
91 lines (72 loc) · 1.9 KB
/
menu.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/*
*
* menu.go
* service
*
* Created by lintao on 2023/11/10 13:52
* Copyright © 2020-2023 LINTAO. All rights reserved.
*
*/
package service
import (
"strconv"
"github.com/NSObjects/echo-admin/internal/api/biz"
"github.com/NSObjects/echo-admin/internal/api/service/param"
"github.com/NSObjects/echo-admin/internal/resp"
"github.com/labstack/echo/v4"
"github.com/spf13/cast"
)
type MenuController struct {
h *biz.MenuHandler
}
func (m *MenuController) RegisterRouter(s *echo.Group, _ ...echo.MiddlewareFunc) {
s.POST("/menus", m.create).Name = "创建菜单"
s.GET("/menus", m.list).Name = "菜单列表"
s.PUT("/menus/:id", m.edit).Name = "编辑菜单"
s.DELETE("/menus/:id", m.delete).Name = "删除菜单"
}
func NewMenuController(h *biz.MenuHandler) *MenuController {
return &MenuController{h: h}
}
func (m *MenuController) create(ctx echo.Context) (err error) {
var menu param.Menu
if err = BindAndValidate(&menu, ctx); err != nil {
return err
}
if err = m.h.CreateMenu(ctx.Request().Context(), menu); err != nil {
return err
}
return resp.OperateSuccess(ctx)
}
func (m *MenuController) list(ctx echo.Context) error {
var q param.MenuParam
if err := BindAndValidate(&q, ctx); err != nil {
return err
}
menu, total, err := m.h.ListMenu(ctx.Request().Context(), q)
if err != nil {
return err
}
return resp.ListDataResponse(menu, total, ctx)
}
func (m *MenuController) edit(ctx echo.Context) error {
atoi := cast.ToUint(ctx.Param("id"))
var menu param.Menu
err := BindAndValidate(&menu, ctx)
if err != nil {
return err
}
err = m.h.UpdateMenu(ctx.Request().Context(), atoi, menu)
if err != nil {
return err
}
return resp.OperateSuccess(ctx)
}
func (m *MenuController) delete(ctx echo.Context) error {
atoi, _ := strconv.Atoi(ctx.Param("id"))
err := m.h.Delete(ctx.Request().Context(), uint(atoi))
if err != nil {
return err
}
return resp.OperateSuccess(ctx)
}