@@ -12,6 +12,18 @@ var errInvalidParamValue = errors.New("invalid param value")
1212var errParamCountNotMatch = errors .New ("base-param count is not equal to param count" )
1313
1414func ParamToMiddlewares (baseParam * baseParam.Param , param * param.Param ) (preMids , postMids []middleware.Middleware , errs []error ) {
15+ var statusPageMids []middleware.Middleware
16+
17+ // status pages
18+ for i := range param .StatusPages {
19+ mid , err := getStatusPageMiddleware (param .StatusPages [i ])
20+ errs = serverError .AppendError (errs , err )
21+ if mid != nil {
22+ statusPageMids = append (statusPageMids , mid )
23+ postMids = append (postMids , mid )
24+ }
25+ }
26+
1527 // rewrites
1628 for i := range param .Rewrites {
1729 mid , err := getRewriteMiddleware (param .Rewrites [i ])
@@ -41,22 +53,13 @@ func ParamToMiddlewares(baseParam *baseParam.Param, param *param.Param) (preMids
4153
4254 // returns
4355 for i := range param .Returns {
44- mid , err := getReturnStatusMiddleware (param .Returns [i ])
56+ mid , err := getReturnStatusMiddleware (param .Returns [i ], statusPageMids )
4557 errs = serverError .AppendError (errs , err )
4658 if mid != nil {
4759 preMids = append (preMids , mid )
4860 }
4961 }
5062
51- // status pages
52- for i := range param .StatusPages {
53- mid , err := getStatusPageMiddleware (param .StatusPages [i ])
54- errs = serverError .AppendError (errs , err )
55- if mid != nil {
56- postMids = append (postMids , mid )
57- }
58- }
59-
6063 return
6164}
6265
0 commit comments