1
0
mirror of https://github.com/astaxie/beego.git synced 2024-06-29 12:44:13 +00:00

beego: improve the admin router print

This commit is contained in:
astaxie 2014-05-27 17:27:22 +08:00
parent d2eece9a39
commit f6c7a6bd32
2 changed files with 51 additions and 39 deletions

View File

@ -122,18 +122,30 @@ func listConf(rw http.ResponseWriter, r *http.Request) {
case "router": case "router":
fmt.Fprintln(rw, "Print all router infomation:") fmt.Fprintln(rw, "Print all router infomation:")
for _, router := range BeeApp.Handlers.fixrouters { for _, router := range BeeApp.Handlers.fixrouters {
if router.routerType == routerTypeBeego {
if router.hasMethod { if router.hasMethod {
fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.controllerType.Name()) fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.controllerType.Name())
} else { } else {
fmt.Fprintln(rw, router.pattern, "----", router.controllerType.Name()) fmt.Fprintln(rw, router.pattern, "----", router.controllerType.Name())
} }
} else if router.routerType == routerTypeRESTFul {
fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.runfunction)
} else if router.routerType == routerTypeHandler {
fmt.Fprintln(rw, router.pattern, "----", router.handler)
}
} }
for _, router := range BeeApp.Handlers.routers { for _, router := range BeeApp.Handlers.routers {
if router.routerType == routerTypeBeego {
if router.hasMethod { if router.hasMethod {
fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.controllerType.Name()) fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.controllerType.Name())
} else { } else {
fmt.Fprintln(rw, router.pattern, "----", router.controllerType.Name()) fmt.Fprintln(rw, router.pattern, "----", router.controllerType.Name())
} }
} else if router.routerType == routerTypeRESTFul {
fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.runfunction)
} else if router.routerType == routerTypeHandler {
fmt.Fprintln(rw, router.pattern, "----", router.handler)
}
} }
if BeeApp.Handlers.enableAuto { if BeeApp.Handlers.enableAuto {
for controllerName, methodObj := range BeeApp.Handlers.autoRouter { for controllerName, methodObj := range BeeApp.Handlers.autoRouter {

View File

@ -525,37 +525,6 @@ func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string {
} }
controllName := strings.Join(paths[:len(paths)-1], ".") controllName := strings.Join(paths[:len(paths)-1], ".")
methodName := paths[len(paths)-1] methodName := paths[len(paths)-1]
for _, route := range p.fixrouters {
if route.controllerType.Name() == controllName {
var finded bool
if utils.InSlice(strings.ToLower(methodName), HTTPMETHOD) {
if route.hasMethod {
if m, ok := route.methods[strings.ToLower(methodName)]; ok && m != methodName {
finded = false
} else if m, ok = route.methods["*"]; ok && m != methodName {
finded = false
} else {
finded = true
}
} else {
finded = true
}
} else if route.hasMethod {
for _, md := range route.methods {
if md == methodName {
finded = true
}
}
}
if !finded {
continue
}
if len(values) > 0 {
return route.pattern + "?" + urlv.Encode()
}
return route.pattern
}
}
for _, route := range p.routers { for _, route := range p.routers {
if route.controllerType.Name() == controllName { if route.controllerType.Name() == controllName {
var finded bool var finded bool
@ -601,6 +570,37 @@ func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string {
} }
} }
} }
for _, route := range p.fixrouters {
if route.controllerType.Name() == controllName {
var finded bool
if utils.InSlice(strings.ToLower(methodName), HTTPMETHOD) {
if route.hasMethod {
if m, ok := route.methods[strings.ToLower(methodName)]; ok && m != methodName {
finded = false
} else if m, ok = route.methods["*"]; ok && m != methodName {
finded = false
} else {
finded = true
}
} else {
finded = true
}
} else if route.hasMethod {
for _, md := range route.methods {
if md == methodName {
finded = true
}
}
}
if !finded {
continue
}
if len(values) > 0 {
return route.pattern + "?" + urlv.Encode()
}
return route.pattern
}
}
if p.enableAuto { if p.enableAuto {
for cName, methodList := range p.autoRouter { for cName, methodList := range p.autoRouter {
if strings.ToLower(strings.TrimSuffix(paths[len(paths)-2], "Controller")) == cName { if strings.ToLower(strings.TrimSuffix(paths[len(paths)-2], "Controller")) == cName {