-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathleaf.go
96 lines (82 loc) · 2.73 KB
/
leaf.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package poteto
/*
/ Leaf Make Router Great
/ p.Leaf("/users", func(leaf Leaf) {
/ leaf.Register(sampleMiddleware)
/ leaf.GET("/", getAllUserForTest)
/ leaf.POST("/create", getAllUserForTest)
/ leaf.PUT("/change", getAllUserForTest)
/ leaf.DELETE("/delete", getAllUserForTest)
/ })
*/
type leaf struct {
poteto Poteto
basePath string
}
type Leaf interface {
Register(middlewares ...MiddlewareFunc) *middlewareTree
GET(addPath string, handler HandlerFunc) error
POST(addPath string, handler HandlerFunc) error
PUT(addPath string, handler HandlerFunc) error
PATCH(path string, handler HandlerFunc) error
DELETE(addPath string, handler HandlerFunc) error
HEAD(path string, handler HandlerFunc) error
OPTIONS(path string, handler HandlerFunc) error
TRACE(path string, handler HandlerFunc) error
CONNECT(path string, handler HandlerFunc) error
}
func NewLeaf(poteto Poteto, basePath string) Leaf {
return &leaf{
poteto: poteto,
basePath: basePath,
}
}
// internal call Poteto.Combine w/ bp
func (l *leaf) Register(middlewares ...MiddlewareFunc) *middlewareTree {
return l.poteto.Combine(l.basePath, middlewares...)
}
// internal call Poteto.GET w/ bp
func (l *leaf) GET(addPath string, handler HandlerFunc) error {
path := l.basePath + addPath
return l.poteto.GET(path, handler)
}
// internal call Poteto.POST w/ bp
func (l *leaf) POST(addPath string, handler HandlerFunc) error {
path := l.basePath + addPath
return l.poteto.POST(path, handler)
}
// internal call Poteto.PUT w/ bp
func (l *leaf) PUT(addPath string, handler HandlerFunc) error {
path := l.basePath + addPath
return l.poteto.PUT(path, handler)
}
// internal call Poteto.PATCH w/ bp
func (l *leaf) PATCH(addPath string, handler HandlerFunc) error {
path := l.basePath + addPath
return l.poteto.PATCH(path, handler)
}
// internal call Poteto.DELETE w/ bp
func (l *leaf) DELETE(addPath string, handler HandlerFunc) error {
path := l.basePath + addPath
return l.poteto.DELETE(path, handler)
}
// internal call Poteto.HEAD w/ bp
func (l *leaf) HEAD(addPath string, handler HandlerFunc) error {
path := l.basePath + addPath
return l.poteto.HEAD(path, handler)
}
// internal call Poteto.OPTIONS w/ bp
func (l *leaf) OPTIONS(addPath string, handler HandlerFunc) error {
path := l.basePath + addPath
return l.poteto.OPTIONS(path, handler)
}
// internal call Poteto.TRACE w/ bp
func (l *leaf) TRACE(addPath string, handler HandlerFunc) error {
path := l.basePath + addPath
return l.poteto.TRACE(path, handler)
}
// internal call Poteto.CONNECT w/ bp
func (l *leaf) CONNECT(addPath string, handler HandlerFunc) error {
path := l.basePath + addPath
return l.poteto.CONNECT(path, handler)
}