From cd1a0c41d4394d9955a25cc45f98c9553346cdfc Mon Sep 17 00:00:00 2001 From: Alexis Couvreur Date: Fri, 28 Oct 2022 05:18:27 +0000 Subject: [PATCH] feat(traefik): `DisplayName` defaults as the middleware name --- plugins/traefik/config.go | 9 ++++++--- plugins/traefik/config_test.go | 6 +++--- plugins/traefik/main.go | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/plugins/traefik/config.go b/plugins/traefik/config.go index 5c6d1be..a133ccf 100644 --- a/plugins/traefik/config.go +++ b/plugins/traefik/config.go @@ -35,7 +35,7 @@ func CreateConfig() *Config { } } -func (c *Config) BuildRequest() (*http.Request, error) { +func (c *Config) BuildRequest(middlewareName string) (*http.Request, error) { if len(c.SablierURL) == 0 { return nil, fmt.Errorf("sablierURL cannot be empty") @@ -57,14 +57,14 @@ func (c *Config) BuildRequest() (*http.Request, error) { } if c.Dynamic != nil { - return c.buildDynamicRequest() + return c.buildDynamicRequest(middlewareName) } else if c.Blocking != nil { return c.buildBlockingRequest() } return nil, fmt.Errorf("no strategy configured") } -func (c *Config) buildDynamicRequest() (*http.Request, error) { +func (c *Config) buildDynamicRequest(middlewareName string) (*http.Request, error) { if c.Dynamic == nil { return nil, fmt.Errorf("dynamic config is nil") } @@ -83,6 +83,9 @@ func (c *Config) buildDynamicRequest() (*http.Request, error) { if c.Dynamic.DisplayName != "" { q.Add("display_name", c.Dynamic.DisplayName) + } else { + // display name defaults as middleware name + q.Add("display_name", middlewareName) } if c.Dynamic.Theme != "" { diff --git a/plugins/traefik/config_test.go b/plugins/traefik/config_test.go index 9f2f1f3..7c1447e 100644 --- a/plugins/traefik/config_test.go +++ b/plugins/traefik/config_test.go @@ -31,7 +31,7 @@ func TestConfig_BuildRequest(t *testing.T) { SessionDuration: "1m", Dynamic: &traefik.DynamicConfiguration{}, }, - want: createRequest("GET", "http://sablier:10000/api/strategies/dynamic?names=nginx&names=apache&session_duration=1m", nil), + want: createRequest("GET", "http://sablier:10000/api/strategies/dynamic?display_name=sablier-middleware&names=nginx&names=apache&session_duration=1m", nil), wantErr: false, }, { @@ -44,7 +44,7 @@ func TestConfig_BuildRequest(t *testing.T) { Theme: "hacker-terminal", }, }, - want: createRequest("GET", "http://sablier:10000/api/strategies/dynamic?names=nginx&names=apache&session_duration=1m&theme=hacker-terminal", nil), + want: createRequest("GET", "http://sablier:10000/api/strategies/dynamic?display_name=sablier-middleware&names=nginx&names=apache&session_duration=1m&theme=hacker-terminal", nil), wantErr: false, }, { @@ -108,7 +108,7 @@ func TestConfig_BuildRequest(t *testing.T) { Blocking: tt.fields.Blocking, } - got, err := c.BuildRequest() + got, err := c.BuildRequest("sablier-middleware") if (err != nil) != tt.wantErr { t.Errorf("Config.BuildRequest() error = %v, wantErr %v", err, tt.wantErr) return diff --git a/plugins/traefik/main.go b/plugins/traefik/main.go index c26dcaf..2e2e51d 100644 --- a/plugins/traefik/main.go +++ b/plugins/traefik/main.go @@ -14,7 +14,7 @@ type SablierMiddleware struct { // New function creates the configuration func New(ctx context.Context, next http.Handler, config *Config, name string) (http.Handler, error) { - req, err := config.BuildRequest() + req, err := config.BuildRequest(name) if err != nil { return nil, err