@@ -42,11 +42,17 @@ func Wrap(handlers ...interface{}) http.HandlerFunc {
42
42
handler := handlers [i ]
43
43
switch t := handler .(type ) {
44
44
case http.HandlerFunc :
45
+ if _ , ok := resp .(context.ResponseWriter ); ! ok {
46
+ resp = context .NewResponse (resp )
47
+ }
45
48
t (resp , req )
46
49
if r , ok := resp .(context.ResponseWriter ); ok && r .Status () > 0 {
47
50
return
48
51
}
49
52
case func (http.ResponseWriter , * http.Request ):
53
+ if _ , ok := resp .(context.ResponseWriter ); ! ok {
54
+ resp = context .NewResponse (resp )
55
+ }
50
56
t (resp , req )
51
57
if r , ok := resp .(context.ResponseWriter ); ok && r .Status () > 0 {
52
58
return
@@ -88,7 +94,7 @@ func Wrap(handlers ...interface{}) http.HandlerFunc {
88
94
return
89
95
}
90
96
case func (http.Handler ) http.Handler :
91
- var next = http .HandlerFunc (func (http.ResponseWriter , * http.Request ) {})
97
+ next : = http .HandlerFunc (func (http.ResponseWriter , * http.Request ) {})
92
98
if len (handlers ) > i + 1 {
93
99
next = Wrap (handlers [i + 1 :]... )
94
100
}
@@ -148,15 +154,15 @@ func MiddleAPI(f func(ctx *context.APIContext)) func(netx http.Handler) http.Han
148
154
149
155
// Bind binding an obj to a handler
150
156
func Bind (obj interface {}) http.HandlerFunc {
151
- var tp = reflect .TypeOf (obj )
157
+ tp : = reflect .TypeOf (obj )
152
158
if tp .Kind () == reflect .Ptr {
153
159
tp = tp .Elem ()
154
160
}
155
161
if tp .Kind () != reflect .Struct {
156
162
panic ("Only structs are allowed to bind" )
157
163
}
158
164
return Wrap (func (ctx * context.Context ) {
159
- var theObj = reflect .New (tp ).Interface () // create a new form obj for every request but not use obj directly
165
+ theObj : = reflect .New (tp ).Interface () // create a new form obj for every request but not use obj directly
160
166
binding .Bind (ctx .Req , theObj )
161
167
SetForm (ctx , theObj )
162
168
middleware .AssignForm (theObj , ctx .Data )
@@ -214,8 +220,8 @@ func (r *Route) Use(middlewares ...interface{}) {
214
220
215
221
// Group mounts a sub-Router along a `pattern` string.
216
222
func (r * Route ) Group (pattern string , fn func (), middlewares ... interface {}) {
217
- var previousGroupPrefix = r .curGroupPrefix
218
- var previousMiddlewares = r .curMiddlewares
223
+ previousGroupPrefix : = r .curGroupPrefix
224
+ previousMiddlewares : = r .curMiddlewares
219
225
r .curGroupPrefix += pattern
220
226
r .curMiddlewares = append (r .curMiddlewares , middlewares ... )
221
227
@@ -238,88 +244,88 @@ func (r *Route) getPattern(pattern string) string {
238
244
239
245
// Mount attaches another Route along ./pattern/*
240
246
func (r * Route ) Mount (pattern string , subR * Route ) {
241
- var middlewares = make ([]interface {}, len (r .curMiddlewares ))
247
+ middlewares : = make ([]interface {}, len (r .curMiddlewares ))
242
248
copy (middlewares , r .curMiddlewares )
243
249
subR .Use (middlewares ... )
244
250
r .R .Mount (r .getPattern (pattern ), subR .R )
245
251
}
246
252
247
253
// Any delegate requests for all methods
248
254
func (r * Route ) Any (pattern string , h ... interface {}) {
249
- var middlewares = r .getMiddlewares (h )
255
+ middlewares : = r .getMiddlewares (h )
250
256
r .R .HandleFunc (r .getPattern (pattern ), Wrap (middlewares ... ))
251
257
}
252
258
253
259
// Route delegate special methods
254
260
func (r * Route ) Route (pattern , methods string , h ... interface {}) {
255
261
p := r .getPattern (pattern )
256
262
ms := strings .Split (methods , "," )
257
- var middlewares = r .getMiddlewares (h )
263
+ middlewares : = r .getMiddlewares (h )
258
264
for _ , method := range ms {
259
265
r .R .MethodFunc (strings .TrimSpace (method ), p , Wrap (middlewares ... ))
260
266
}
261
267
}
262
268
263
269
// Delete delegate delete method
264
270
func (r * Route ) Delete (pattern string , h ... interface {}) {
265
- var middlewares = r .getMiddlewares (h )
271
+ middlewares : = r .getMiddlewares (h )
266
272
r .R .Delete (r .getPattern (pattern ), Wrap (middlewares ... ))
267
273
}
268
274
269
275
func (r * Route ) getMiddlewares (h []interface {}) []interface {} {
270
- var middlewares = make ([]interface {}, len (r .curMiddlewares ), len (r .curMiddlewares )+ len (h ))
276
+ middlewares : = make ([]interface {}, len (r .curMiddlewares ), len (r .curMiddlewares )+ len (h ))
271
277
copy (middlewares , r .curMiddlewares )
272
278
middlewares = append (middlewares , h ... )
273
279
return middlewares
274
280
}
275
281
276
282
// Get delegate get method
277
283
func (r * Route ) Get (pattern string , h ... interface {}) {
278
- var middlewares = r .getMiddlewares (h )
284
+ middlewares : = r .getMiddlewares (h )
279
285
r .R .Get (r .getPattern (pattern ), Wrap (middlewares ... ))
280
286
}
281
287
282
288
// Options delegate options method
283
289
func (r * Route ) Options (pattern string , h ... interface {}) {
284
- var middlewares = r .getMiddlewares (h )
290
+ middlewares : = r .getMiddlewares (h )
285
291
r .R .Options (r .getPattern (pattern ), Wrap (middlewares ... ))
286
292
}
287
293
288
294
// GetOptions delegate get and options method
289
295
func (r * Route ) GetOptions (pattern string , h ... interface {}) {
290
- var middlewares = r .getMiddlewares (h )
296
+ middlewares : = r .getMiddlewares (h )
291
297
r .R .Get (r .getPattern (pattern ), Wrap (middlewares ... ))
292
298
r .R .Options (r .getPattern (pattern ), Wrap (middlewares ... ))
293
299
}
294
300
295
301
// PostOptions delegate post and options method
296
302
func (r * Route ) PostOptions (pattern string , h ... interface {}) {
297
- var middlewares = r .getMiddlewares (h )
303
+ middlewares : = r .getMiddlewares (h )
298
304
r .R .Post (r .getPattern (pattern ), Wrap (middlewares ... ))
299
305
r .R .Options (r .getPattern (pattern ), Wrap (middlewares ... ))
300
306
}
301
307
302
308
// Head delegate head method
303
309
func (r * Route ) Head (pattern string , h ... interface {}) {
304
- var middlewares = r .getMiddlewares (h )
310
+ middlewares : = r .getMiddlewares (h )
305
311
r .R .Head (r .getPattern (pattern ), Wrap (middlewares ... ))
306
312
}
307
313
308
314
// Post delegate post method
309
315
func (r * Route ) Post (pattern string , h ... interface {}) {
310
- var middlewares = r .getMiddlewares (h )
316
+ middlewares : = r .getMiddlewares (h )
311
317
r .R .Post (r .getPattern (pattern ), Wrap (middlewares ... ))
312
318
}
313
319
314
320
// Put delegate put method
315
321
func (r * Route ) Put (pattern string , h ... interface {}) {
316
- var middlewares = r .getMiddlewares (h )
322
+ middlewares : = r .getMiddlewares (h )
317
323
r .R .Put (r .getPattern (pattern ), Wrap (middlewares ... ))
318
324
}
319
325
320
326
// Patch delegate patch method
321
327
func (r * Route ) Patch (pattern string , h ... interface {}) {
322
- var middlewares = r .getMiddlewares (h )
328
+ middlewares : = r .getMiddlewares (h )
323
329
r .R .Patch (r .getPattern (pattern ), Wrap (middlewares ... ))
324
330
}
325
331
0 commit comments