f6c7a6bd by astaxie

beego: improve the admin router print

1 parent d2eece9a
...@@ -122,18 +122,30 @@ func listConf(rw http.ResponseWriter, r *http.Request) { ...@@ -122,18 +122,30 @@ func listConf(rw http.ResponseWriter, r *http.Request) {
122 case "router": 122 case "router":
123 fmt.Fprintln(rw, "Print all router infomation:") 123 fmt.Fprintln(rw, "Print all router infomation:")
124 for _, router := range BeeApp.Handlers.fixrouters { 124 for _, router := range BeeApp.Handlers.fixrouters {
125 if router.routerType == routerTypeBeego {
125 if router.hasMethod { 126 if router.hasMethod {
126 fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.controllerType.Name()) 127 fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.controllerType.Name())
127 } else { 128 } else {
128 fmt.Fprintln(rw, router.pattern, "----", router.controllerType.Name()) 129 fmt.Fprintln(rw, router.pattern, "----", router.controllerType.Name())
129 } 130 }
131 } else if router.routerType == routerTypeRESTFul {
132 fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.runfunction)
133 } else if router.routerType == routerTypeHandler {
134 fmt.Fprintln(rw, router.pattern, "----", router.handler)
135 }
130 } 136 }
131 for _, router := range BeeApp.Handlers.routers { 137 for _, router := range BeeApp.Handlers.routers {
138 if router.routerType == routerTypeBeego {
132 if router.hasMethod { 139 if router.hasMethod {
133 fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.controllerType.Name()) 140 fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.controllerType.Name())
134 } else { 141 } else {
135 fmt.Fprintln(rw, router.pattern, "----", router.controllerType.Name()) 142 fmt.Fprintln(rw, router.pattern, "----", router.controllerType.Name())
136 } 143 }
144 } else if router.routerType == routerTypeRESTFul {
145 fmt.Fprintln(rw, router.pattern, "----", router.methods, "----", router.runfunction)
146 } else if router.routerType == routerTypeHandler {
147 fmt.Fprintln(rw, router.pattern, "----", router.handler)
148 }
137 } 149 }
138 if BeeApp.Handlers.enableAuto { 150 if BeeApp.Handlers.enableAuto {
139 for controllerName, methodObj := range BeeApp.Handlers.autoRouter { 151 for controllerName, methodObj := range BeeApp.Handlers.autoRouter {
......
...@@ -525,7 +525,7 @@ func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string { ...@@ -525,7 +525,7 @@ func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string {
525 } 525 }
526 controllName := strings.Join(paths[:len(paths)-1], ".") 526 controllName := strings.Join(paths[:len(paths)-1], ".")
527 methodName := paths[len(paths)-1] 527 methodName := paths[len(paths)-1]
528 for _, route := range p.fixrouters { 528 for _, route := range p.routers {
529 if route.controllerType.Name() == controllName { 529 if route.controllerType.Name() == controllName {
530 var finded bool 530 var finded bool
531 if utils.InSlice(strings.ToLower(methodName), HTTPMETHOD) { 531 if utils.InSlice(strings.ToLower(methodName), HTTPMETHOD) {
...@@ -550,13 +550,27 @@ func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string { ...@@ -550,13 +550,27 @@ func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string {
550 if !finded { 550 if !finded {
551 continue 551 continue
552 } 552 }
553 if len(values) > 0 { 553 var returnurl string
554 return route.pattern + "?" + urlv.Encode() 554 var i int
555 var startreg bool
556 for _, v := range route.regex.String() {
557 if v == '(' {
558 startreg = true
559 continue
560 } else if v == ')' {
561 startreg = false
562 returnurl = returnurl + urlv.Get(route.params[i])
563 i++
564 } else if !startreg {
565 returnurl = string(append([]rune(returnurl), v))
555 } 566 }
556 return route.pattern
557 } 567 }
568 if route.regex.MatchString(returnurl) {
569 return returnurl
558 } 570 }
559 for _, route := range p.routers { 571 }
572 }
573 for _, route := range p.fixrouters {
560 if route.controllerType.Name() == controllName { 574 if route.controllerType.Name() == controllName {
561 var finded bool 575 var finded bool
562 if utils.InSlice(strings.ToLower(methodName), HTTPMETHOD) { 576 if utils.InSlice(strings.ToLower(methodName), HTTPMETHOD) {
...@@ -581,24 +595,10 @@ func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string { ...@@ -581,24 +595,10 @@ func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string {
581 if !finded { 595 if !finded {
582 continue 596 continue
583 } 597 }
584 var returnurl string 598 if len(values) > 0 {
585 var i int 599 return route.pattern + "?" + urlv.Encode()
586 var startreg bool
587 for _, v := range route.regex.String() {
588 if v == '(' {
589 startreg = true
590 continue
591 } else if v == ')' {
592 startreg = false
593 returnurl = returnurl + urlv.Get(route.params[i])
594 i++
595 } else if !startreg {
596 returnurl = string(append([]rune(returnurl), v))
597 }
598 }
599 if route.regex.MatchString(returnurl) {
600 return returnurl
601 } 600 }
601 return route.pattern
602 } 602 }
603 } 603 }
604 if p.enableAuto { 604 if p.enableAuto {
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!