implemented method check in 'config' package
This commit is contained in:
parent
296234d6e7
commit
8106c22dbd
|
@ -3,6 +3,7 @@ package config
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Load builds a structured representation of the
|
// Load builds a structured representation of the
|
||||||
|
@ -38,3 +39,37 @@ func Load(path string) (*Controller, error) {
|
||||||
return receiver, nil
|
return receiver, nil
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IsMethodAvailable returns whether a given
|
||||||
|
// method is available (case insensitive)
|
||||||
|
func IsMethodAvailable(method string) bool {
|
||||||
|
for _, m := range AvailableMethods {
|
||||||
|
if strings.ToUpper(method) == m {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// HasMethod returns whether the controller has a given
|
||||||
|
// method (case insensitive)
|
||||||
|
func (c Controller) HasMethod(method string) bool {
|
||||||
|
method = strings.ToUpper(method)
|
||||||
|
|
||||||
|
switch method {
|
||||||
|
|
||||||
|
case "GET":
|
||||||
|
return c.GET != nil
|
||||||
|
case "POST":
|
||||||
|
return c.POST != nil
|
||||||
|
case "PUT":
|
||||||
|
return c.PUT != nil
|
||||||
|
case "DELETE":
|
||||||
|
return c.DELETE != nil
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -25,3 +25,5 @@ type Controller struct {
|
||||||
|
|
||||||
Children map[string]*Controller `json:"/"`
|
Children map[string]*Controller `json:"/"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var AvailableMethods = []string{"GET", "POST", "PUT", "DELETE"}
|
||||||
|
|
Loading…
Reference in New Issue