beego:namespace sub router add url to pattern
Showing
1 changed file
with
18 additions
and
0 deletions
| ... | @@ -198,10 +198,12 @@ func (n *Namespace) Namespace(ns ...*Namespace) *Namespace { | ... | @@ -198,10 +198,12 @@ func (n *Namespace) Namespace(ns ...*Namespace) *Namespace { |
| 198 | for _, ni := range ns { | 198 | for _, ni := range ns { |
| 199 | for k, v := range ni.handlers.routers { | 199 | for k, v := range ni.handlers.routers { |
| 200 | if t, ok := n.handlers.routers[k]; ok { | 200 | if t, ok := n.handlers.routers[k]; ok { |
| 201 | addPrefix(v, ni.prefix) | ||
| 201 | n.handlers.routers[k].AddTree(ni.prefix, v) | 202 | n.handlers.routers[k].AddTree(ni.prefix, v) |
| 202 | } else { | 203 | } else { |
| 203 | t = NewTree() | 204 | t = NewTree() |
| 204 | t.AddTree(ni.prefix, v) | 205 | t.AddTree(ni.prefix, v) |
| 206 | addPrefix(t, ni.prefix) | ||
| 205 | n.handlers.routers[k] = t | 207 | n.handlers.routers[k] = t |
| 206 | } | 208 | } |
| 207 | } | 209 | } |
| ... | @@ -225,10 +227,12 @@ func AddNamespace(nl ...*Namespace) { | ... | @@ -225,10 +227,12 @@ func AddNamespace(nl ...*Namespace) { |
| 225 | for _, n := range nl { | 227 | for _, n := range nl { |
| 226 | for k, v := range n.handlers.routers { | 228 | for k, v := range n.handlers.routers { |
| 227 | if t, ok := BeeApp.Handlers.routers[k]; ok { | 229 | if t, ok := BeeApp.Handlers.routers[k]; ok { |
| 230 | addPrefix(v, n.prefix) | ||
| 228 | BeeApp.Handlers.routers[k].AddTree(n.prefix, v) | 231 | BeeApp.Handlers.routers[k].AddTree(n.prefix, v) |
| 229 | } else { | 232 | } else { |
| 230 | t = NewTree() | 233 | t = NewTree() |
| 231 | t.AddTree(n.prefix, v) | 234 | t.AddTree(n.prefix, v) |
| 235 | addPrefix(t, n.prefix) | ||
| 232 | BeeApp.Handlers.routers[k] = t | 236 | BeeApp.Handlers.routers[k] = t |
| 233 | } | 237 | } |
| 234 | } | 238 | } |
| ... | @@ -245,6 +249,20 @@ func AddNamespace(nl ...*Namespace) { | ... | @@ -245,6 +249,20 @@ func AddNamespace(nl ...*Namespace) { |
| 245 | } | 249 | } |
| 246 | } | 250 | } |
| 247 | 251 | ||
| 252 | func addPrefix(t *Tree, prefix string) { | ||
| 253 | for _, v := range t.fixrouters { | ||
| 254 | addPrefix(v, prefix) | ||
| 255 | } | ||
| 256 | if t.wildcard != nil { | ||
| 257 | addPrefix(t.wildcard, prefix) | ||
| 258 | } | ||
| 259 | if t.leaf != nil { | ||
| 260 | if c, ok := t.leaf.runObject.(*controllerInfo); ok { | ||
| 261 | c.pattern = prefix + c.pattern | ||
| 262 | } | ||
| 263 | } | ||
| 264 | } | ||
| 265 | |||
| 248 | // Namespace Condition | 266 | // Namespace Condition |
| 249 | func NSCond(cond namespaceCond) innnerNamespace { | 267 | func NSCond(cond namespaceCond) innnerNamespace { |
| 250 | return func(ns *Namespace) { | 268 | return func(ns *Namespace) { | ... | ... |
-
Please register or sign in to post a comment