From b87a2e4b0ba1f2f20a29364b1d39cc7901c28ff2 Mon Sep 17 00:00:00 2001 From: Fabian Vowie Date: Sun, 23 Jan 2022 16:54:01 +0100 Subject: [PATCH] Add rate limiting requests per minute field to settings --- main.go | 2 +- settings/settings.go | 12 +++++++----- settings/settings_test.go | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index d9cf7df..9d3c095 100644 --- a/main.go +++ b/main.go @@ -61,7 +61,7 @@ func main() { pipes := pipelines.LoadPipelines() authMiddleware := middlewares.CreateAuthenticationMiddleware(appSettings.Token) - rateLimiterMiddleware, err := middlewares.CreateRateLimiterMiddleware(2) + rateLimiterMiddleware, err := middlewares.CreateRateLimiterMiddleware(appSettings.RequestsPerMinute) if err != nil { panic(err) } diff --git a/settings/settings.go b/settings/settings.go index 1716c1e..760b8b6 100644 --- a/settings/settings.go +++ b/settings/settings.go @@ -15,9 +15,10 @@ const ( type FileSystemType int type Settings struct { - Endpoint string `json:"endpoint"` - Token string `json:"token"` - StorageProvider StorageSettings `json:"storage_provider"` + Endpoint string `json:"endpoint"` + Token string `json:"token"` + RequestsPerMinute int `json:"requests_per_minute"` + StorageProvider StorageSettings `json:"storage_provider"` } type StorageSettings struct { @@ -49,8 +50,9 @@ func LoadSettings(fileSystem afero.Fs) (Settings, error) { // If file does not exist, create default settings defaultSettings := Settings{ - Endpoint: "127.0.0.1:8000", - Token: "changeme", + Endpoint: "127.0.0.1:8000", + Token: "changeme", + RequestsPerMinute: 20, StorageProvider: StorageSettings{ Type: Local, BasePath: "assets", diff --git a/settings/settings_test.go b/settings/settings_test.go index d151b92..3621955 100644 --- a/settings/settings_test.go +++ b/settings/settings_test.go @@ -13,6 +13,7 @@ func TestSettingsParsing(t *testing.T) { const file string = `{ "endpoint": "0.0.0.0:8000", "token": "foobar", + "requests_per_minute": 20, "storage_provider": { "type": 0, "base_path": "assets"