AddRoute registers a route. See `Router.AddRouteUnsafe`.
(r *Route)
| 227 | |
| 228 | // AddRoute registers a route. See `Router.AddRouteUnsafe`. |
| 229 | func (h *routerHandler) AddRoute(r *Route) error { |
| 230 | var ( |
| 231 | method = r.Method |
| 232 | statusCode = r.StatusCode |
| 233 | subdomain = r.Subdomain |
| 234 | path = r.Path |
| 235 | handlers = r.Handlers |
| 236 | ) |
| 237 | |
| 238 | t := h.getTree(statusCode, method, subdomain) |
| 239 | |
| 240 | if t == nil { |
| 241 | n := newTrieNode() |
| 242 | // first time we register a route to this method with this subdomain |
| 243 | t = &trie{statusCode: statusCode, method: method, subdomain: subdomain, root: n} |
| 244 | if statusCode > 0 { |
| 245 | h.errorTrees = append(h.errorTrees, t) |
| 246 | } else { |
| 247 | h.trees = append(h.trees, t) |
| 248 | } |
| 249 | } |
| 250 | |
| 251 | t.insert(path, r.ReadOnly, handlers) |
| 252 | |
| 253 | return nil |
| 254 | } |
| 255 | |
| 256 | // RoutesProvider should be implemented by |
| 257 | // iteral which contains the registered routes. |
no test coverage detected