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
|
||
|
}
|