From 46ad450327111b9d28b592658d75ef57da498298 Mon Sep 17 00:00:00 2001 From: tjpcc Date: Wed, 15 Feb 2023 16:44:29 -0700 Subject: Switch Handler to an interface. HandlerFunc is much better as a function returning a Handler, rather than a newtype for the function type itself. This way there is no confusion creating a type-inferenced variable with HandlerFunc(func(... and then using a HandlerFunc where a Handler is expected. Much better to only have one public type. --- contrib/sharedhost/replacement.go | 6 +++--- contrib/sharedhost/replacement_test.go | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'contrib/sharedhost') diff --git a/contrib/sharedhost/replacement.go b/contrib/sharedhost/replacement.go index 1fb2a0d..9267530 100644 --- a/contrib/sharedhost/replacement.go +++ b/contrib/sharedhost/replacement.go @@ -19,14 +19,14 @@ import ( // "users/", "domain.com/~jim/index.gmi" maps to "domain.com/users/jim/index.gmi". func ReplaceTilde(replacement string) gus.Middleware { return func(inner gus.Handler) gus.Handler { - return func(ctx context.Context, request *gus.Request) *gus.Response { + return gus.HandlerFunc(func(ctx context.Context, request *gus.Request) *gus.Response { if len(request.Path) > 1 && request.Path[0] == '/' && request.Path[1] == '~' { request = cloneRequest(request) request.Path = "/" + replacement + request.Path[2:] } - return inner(ctx, request) - } + return inner.Handle(ctx, request) + }) } } diff --git a/contrib/sharedhost/replacement_test.go b/contrib/sharedhost/replacement_test.go index cab80bb..67c3754 100644 --- a/contrib/sharedhost/replacement_test.go +++ b/contrib/sharedhost/replacement_test.go @@ -43,12 +43,12 @@ func TestReplaceTilde(t *testing.T) { replacer := sharedhost.ReplaceTilde(test.replacement) request := &gus.Request{URL: u} - handler := replacer(func(_ context.Context, request *gus.Request) *gus.Response { + handler := replacer(gus.HandlerFunc(func(_ context.Context, request *gus.Request) *gus.Response { assert.Equal(t, test.replacedPath, request.Path) return &gus.Response{} - }) + })) - handler(context.Background(), request) + handler.Handle(context.Background(), request) // original request was unmodified assert.Equal(t, originalPath, request.Path) -- cgit v1.2.3