You've already forked openaccounting-server
mirror of
https://github.com/openaccounting/oa-server.git
synced 2025-12-09 00:50:59 +13:00
initial commit
This commit is contained in:
107
vendor/github.com/ant0ine/go-json-rest/rest/route.go
generated
vendored
Normal file
107
vendor/github.com/ant0ine/go-json-rest/rest/route.go
generated
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
package rest
|
||||
|
||||
import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Route defines a route as consumed by the router. It can be instantiated directly, or using one
|
||||
// of the shortcut methods: rest.Get, rest.Post, rest.Put, rest.Patch and rest.Delete.
|
||||
type Route struct {
|
||||
|
||||
// Any HTTP method. It will be used as uppercase to avoid common mistakes.
|
||||
HttpMethod string
|
||||
|
||||
// A string like "/resource/:id.json".
|
||||
// Placeholders supported are:
|
||||
// :paramName that matches any char to the first '/' or '.'
|
||||
// #paramName that matches any char to the first '/'
|
||||
// *paramName that matches everything to the end of the string
|
||||
// (placeholder names must be unique per PathExp)
|
||||
PathExp string
|
||||
|
||||
// Code that will be executed when this route is taken.
|
||||
Func HandlerFunc
|
||||
}
|
||||
|
||||
// MakePath generates the path corresponding to this Route and the provided path parameters.
|
||||
// This is used for reverse route resolution.
|
||||
func (route *Route) MakePath(pathParams map[string]string) string {
|
||||
path := route.PathExp
|
||||
for paramName, paramValue := range pathParams {
|
||||
paramPlaceholder := ":" + paramName
|
||||
relaxedPlaceholder := "#" + paramName
|
||||
splatPlaceholder := "*" + paramName
|
||||
r := strings.NewReplacer(paramPlaceholder, paramValue, splatPlaceholder, paramValue, relaxedPlaceholder, paramValue)
|
||||
path = r.Replace(path)
|
||||
}
|
||||
return path
|
||||
}
|
||||
|
||||
// Head is a shortcut method that instantiates a HEAD route. See the Route object the parameters definitions.
|
||||
// Equivalent to &Route{"HEAD", pathExp, handlerFunc}
|
||||
func Head(pathExp string, handlerFunc HandlerFunc) *Route {
|
||||
return &Route{
|
||||
HttpMethod: "HEAD",
|
||||
PathExp: pathExp,
|
||||
Func: handlerFunc,
|
||||
}
|
||||
}
|
||||
|
||||
// Get is a shortcut method that instantiates a GET route. See the Route object the parameters definitions.
|
||||
// Equivalent to &Route{"GET", pathExp, handlerFunc}
|
||||
func Get(pathExp string, handlerFunc HandlerFunc) *Route {
|
||||
return &Route{
|
||||
HttpMethod: "GET",
|
||||
PathExp: pathExp,
|
||||
Func: handlerFunc,
|
||||
}
|
||||
}
|
||||
|
||||
// Post is a shortcut method that instantiates a POST route. See the Route object the parameters definitions.
|
||||
// Equivalent to &Route{"POST", pathExp, handlerFunc}
|
||||
func Post(pathExp string, handlerFunc HandlerFunc) *Route {
|
||||
return &Route{
|
||||
HttpMethod: "POST",
|
||||
PathExp: pathExp,
|
||||
Func: handlerFunc,
|
||||
}
|
||||
}
|
||||
|
||||
// Put is a shortcut method that instantiates a PUT route. See the Route object the parameters definitions.
|
||||
// Equivalent to &Route{"PUT", pathExp, handlerFunc}
|
||||
func Put(pathExp string, handlerFunc HandlerFunc) *Route {
|
||||
return &Route{
|
||||
HttpMethod: "PUT",
|
||||
PathExp: pathExp,
|
||||
Func: handlerFunc,
|
||||
}
|
||||
}
|
||||
|
||||
// Patch is a shortcut method that instantiates a PATCH route. See the Route object the parameters definitions.
|
||||
// Equivalent to &Route{"PATCH", pathExp, handlerFunc}
|
||||
func Patch(pathExp string, handlerFunc HandlerFunc) *Route {
|
||||
return &Route{
|
||||
HttpMethod: "PATCH",
|
||||
PathExp: pathExp,
|
||||
Func: handlerFunc,
|
||||
}
|
||||
}
|
||||
|
||||
// Delete is a shortcut method that instantiates a DELETE route. Equivalent to &Route{"DELETE", pathExp, handlerFunc}
|
||||
func Delete(pathExp string, handlerFunc HandlerFunc) *Route {
|
||||
return &Route{
|
||||
HttpMethod: "DELETE",
|
||||
PathExp: pathExp,
|
||||
Func: handlerFunc,
|
||||
}
|
||||
}
|
||||
|
||||
// Options is a shortcut method that instantiates an OPTIONS route. See the Route object the parameters definitions.
|
||||
// Equivalent to &Route{"OPTIONS", pathExp, handlerFunc}
|
||||
func Options(pathExp string, handlerFunc HandlerFunc) *Route {
|
||||
return &Route{
|
||||
HttpMethod: "OPTIONS",
|
||||
PathExp: pathExp,
|
||||
Func: handlerFunc,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user