summaryrefslogtreecommitdiff
path: root/vendor/github.com/go-zoo/bone/helper.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/go-zoo/bone/helper.go')
-rw-r--r--vendor/github.com/go-zoo/bone/helper.go169
1 files changed, 0 insertions, 169 deletions
diff --git a/vendor/github.com/go-zoo/bone/helper.go b/vendor/github.com/go-zoo/bone/helper.go
deleted file mode 100644
index bd7b45e95..000000000
--- a/vendor/github.com/go-zoo/bone/helper.go
+++ /dev/null
@@ -1,169 +0,0 @@
-/********************************
-*** Multiplexer for Go ***
-*** Bone is under MIT license ***
-*** Code by CodingFerret ***
-*** github.com/go-zoo ***
-*********************************/
-
-package bone
-
-import (
- "net/http"
- "net/url"
- "strings"
-)
-
-func (m *Mux) ListenAndServe(port string) error {
- return http.ListenAndServe(port, m)
-}
-
-func (m *Mux) parse(rw http.ResponseWriter, req *http.Request) bool {
- for _, r := range m.Routes[req.Method] {
- ok := r.parse(rw, req)
- if ok {
- return true
- }
- }
- // If no HEAD method, default to GET
- if req.Method == "HEAD" {
- for _, r := range m.Routes["GET"] {
- ok := r.parse(rw, req)
- if ok {
- return true
- }
- }
- }
- return false
-}
-
-// StaticRoute check if the request path is for Static route
-func (m *Mux) staticRoute(rw http.ResponseWriter, req *http.Request) bool {
- for _, s := range m.Routes[static] {
- if len(req.URL.Path) >= s.Size {
- if req.URL.Path[:s.Size] == s.Path {
- s.Handler.ServeHTTP(rw, req)
- return true
- }
- }
- }
- return false
-}
-
-// HandleNotFound handle when a request does not match a registered handler.
-func (m *Mux) HandleNotFound(rw http.ResponseWriter, req *http.Request) {
- if m.notFound != nil {
- m.notFound.ServeHTTP(rw, req)
- } else {
- http.NotFound(rw, req)
- }
-}
-
-// Check if the path don't end with a /
-func (m *Mux) validate(rw http.ResponseWriter, req *http.Request) bool {
- plen := len(req.URL.Path)
- if plen > 1 && req.URL.Path[plen-1:] == "/" {
- cleanURL(&req.URL.Path)
- rw.Header().Set("Location", req.URL.String())
- rw.WriteHeader(http.StatusFound)
- return true
- }
- // Retry to find a route that match
- return m.parse(rw, req)
-}
-
-func valid(path string) bool {
- plen := len(path)
- if plen > 1 && path[plen-1:] == "/" {
- return false
- }
- return true
-}
-
-// Clean url path
-func cleanURL(url *string) {
- ulen := len((*url))
- if ulen > 1 {
- if (*url)[ulen-1:] == "/" {
- *url = (*url)[:ulen-1]
- cleanURL(url)
- }
- }
-}
-
-// GetValue return the key value, of the current *http.Request
-func GetValue(req *http.Request, key string) string {
- return GetAllValues(req)[key]
-}
-
-// GetRequestRoute returns the route of given Request
-func (m *Mux) GetRequestRoute(req *http.Request) string {
- cleanURL(&req.URL.Path)
- for _, r := range m.Routes[req.Method] {
- if r.Atts != 0 {
- if r.Atts&SUB != 0 {
- return r.Handler.(*Mux).GetRequestRoute(req)
- }
- if r.Match(req) {
- return r.Path
- }
- }
- if req.URL.Path == r.Path {
- return r.Path
- }
- }
-
- for _, s := range m.Routes[static] {
- if len(req.URL.Path) >= s.Size {
- if req.URL.Path[:s.Size] == s.Path {
- return s.Path
- }
- }
- }
-
- return "NotFound"
-}
-
-// GetQuery return the key value, of the current *http.Request query
-func GetQuery(req *http.Request, key string) []string {
- if ok, value := extractQueries(req); ok {
- return value[key]
- }
- return nil
-}
-
-// GetAllQueries return all queries of the current *http.Request
-func GetAllQueries(req *http.Request) map[string][]string {
- if ok, values := extractQueries(req); ok {
- return values
- }
- return nil
-}
-
-func extractQueries(req *http.Request) (bool, map[string][]string) {
- if q, err := url.ParseQuery(req.URL.RawQuery); err == nil {
- var queries = make(map[string][]string)
- for k, v := range q {
- for _, item := range v {
- values := strings.Split(item, ",")
- queries[k] = append(queries[k], values...)
- }
- }
- return true, queries
- }
- return false, nil
-}
-
-func (m *Mux) otherMethods(rw http.ResponseWriter, req *http.Request) bool {
- for _, met := range method {
- if met != req.Method {
- for _, r := range m.Routes[met] {
- ok := r.exists(rw, req)
- if ok {
- rw.WriteHeader(http.StatusMethodNotAllowed)
- return true
- }
- }
- }
- }
- return false
-}