49 lines
977 B
Go
49 lines
977 B
Go
package server
|
|
|
|
import (
|
|
"admin/apps/mockpro/internal/model/dto"
|
|
"admin/lib/web"
|
|
)
|
|
|
|
type PathInfo struct {
|
|
Path string `json:"path"`
|
|
Method string `json:"method"`
|
|
}
|
|
type ResourceInfo struct {
|
|
Desc string `json:"desc"`
|
|
Paths []*PathInfo `json:"paths"`
|
|
}
|
|
type CmdListRsp struct {
|
|
List []*ResourceInfo `json:"list"`
|
|
}
|
|
|
|
func (srv *Server) commandlist(ctx *WebContext, req *dto.NilReq, rsp *CmdListRsp) error {
|
|
paths := make([]*ResourceInfo, 0)
|
|
srv.engine.TravelPaths(func(path string, parentDesc string, method string, handlers ...web.HandlerFunc) {
|
|
find := false
|
|
for _, v := range paths {
|
|
if v.Desc == parentDesc {
|
|
v.Paths = append(v.Paths, &PathInfo{
|
|
Path: path,
|
|
Method: method,
|
|
})
|
|
find = true
|
|
break
|
|
}
|
|
}
|
|
if !find {
|
|
paths = append(paths, &ResourceInfo{
|
|
Desc: parentDesc,
|
|
Paths: []*PathInfo{
|
|
&PathInfo{
|
|
Path: path,
|
|
Method: method,
|
|
},
|
|
},
|
|
})
|
|
}
|
|
})
|
|
rsp.List = paths
|
|
return nil
|
|
}
|