@@ -30,9 +30,12 @@ type Faucet struct {
30
30
31
31
mux * chi.Mux // HTTP routing
32
32
33
- config * config.Config // faucet configuration
34
- middlewares []Middleware // request middlewares
35
- handlers []Handler // request handlers
33
+ config * config.Config // faucet configuration
34
+
35
+ httpMiddlewares []func (http.Handler ) http.Handler // http middlewares (http.Handler -> http.Handler)
36
+ rpcMiddlewares []Middleware // JSON-RPC request middlewares (Handler -> Handler)
37
+ rpcHandlers []Handler // JSON-RPC request handlers
38
+
36
39
prepareTxMsgFn PrepareTxMessageFn // transaction message creator
37
40
38
41
maxSendAmount std.Coins // the max send amount per drip
@@ -52,13 +55,13 @@ func NewFaucet(
52
55
logger : noopLogger ,
53
56
config : config .DefaultConfig (),
54
57
prepareTxMsgFn : defaultPrepareTxMessage ,
55
- middlewares : nil , // no middlewares by default
58
+ rpcMiddlewares : nil , // no rpcMiddlewares by default
56
59
57
60
mux : chi .NewMux (),
58
61
}
59
62
60
63
// Set the single default HTTP handler
61
- f .handlers = []Handler {
64
+ f .rpcHandlers = []Handler {
62
65
{
63
66
f .defaultHTTPHandler ,
64
67
"/" ,
@@ -99,11 +102,17 @@ func NewFaucet(
99
102
// Branch off another route group, so they don't influence
100
103
// "standard" routes like health
101
104
f .mux .Group (func (r chi.Router ) {
102
- for _ , h := range f .handlers {
105
+ // Apply HTTP transport middlewares
106
+ for _ , mw := range f .httpMiddlewares {
107
+ r .Use (mw )
108
+ }
109
+
110
+ // Apply JSON-RPC request middlewares
111
+ for _ , h := range f .rpcHandlers {
103
112
r .Post (h .Pattern ,
104
113
wrapJSONRPC (
105
114
h .HandlerFunc ,
106
- f .middlewares ... ,
115
+ f .rpcMiddlewares ... ,
107
116
),
108
117
)
109
118
}
0 commit comments