Browse Source

Add enabled field to rate limiter settings

feature/make-middlewares-optional
Fabian Vowie 3 years ago
parent
commit
b8d71c0d3d
No known key found for this signature in database GPG Key ID: C27317C33B27C410
  1. 5
      main.go
  2. 6
      settings/settings.go
  3. 1
      settings/settings_test.go

5
main.go

@ -71,7 +71,10 @@ func main() {
r := mux.NewRouter()
r.Use(authMiddleware.Middleware)
r.Use(rateLimiterMiddleware.Middleware)
if appSettings.RateLimiter.Enabled {
r.Use(rateLimiterMiddleware.Middleware)
}
r.HandleFunc("/", IndexHandler)

6
settings/settings.go

@ -27,8 +27,9 @@ type StorageSettings struct {
}
type RateLimiterSettings struct {
RequestsPerMinute int `json:"requests_per_minute"`
AllowedBurst int `json:"allowed_burst"`
Enabled bool `json:"enabled"`
RequestsPerMinute int `json:"requests_per_minute"`
AllowedBurst int `json:"allowed_burst"`
}
func parseSettings(data []byte) Settings {
@ -58,6 +59,7 @@ func LoadSettings(fileSystem afero.Fs) (Settings, error) {
Endpoint: "127.0.0.1:8000",
Token: "changeme",
RateLimiter: RateLimiterSettings{
Enabled: true,
RequestsPerMinute: 20,
AllowedBurst: 5,
},

1
settings/settings_test.go

@ -14,6 +14,7 @@ func TestSettingsParsing(t *testing.T) {
"endpoint": "0.0.0.0:8000",
"token": "foobar",
"rate_limiter": {
"enabled": true,
"requests_per_minute": 20,
"allowed_burst": 5
},

Loading…
Cancel
Save