From a865a3ba2dc1b37dcfbafef0d0f0df824684585a Mon Sep 17 00:00:00 2001 From: Alfred Kamanda Date: Fri, 28 Nov 2025 09:33:57 +0300 Subject: [PATCH] added support for passing different bearer tokens --- remote/http/service.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/remote/http/service.go b/remote/http/service.go index cb6918e..7fe62ff 100644 --- a/remote/http/service.go +++ b/remote/http/service.go @@ -10,7 +10,6 @@ import ( "log" "net/http" "net/url" - "regexp" "strings" "git.grassecon.net/grassrootseconomics/sarafu-api/config" @@ -23,8 +22,7 @@ import ( ) var ( - aliasRegex = regexp.MustCompile("^\\+?[a-zA-Z0-9\\-_]+$") - logg = slogging.Get().With("component", "sarafu-api.devapi") + logg = slogging.Get().With("component", "sarafu-api.devapi") ) type APIError struct { @@ -32,6 +30,10 @@ type APIError struct { Description string } +type ctxKey string + +const ctxKeyAuthToken ctxKey = "authToken" + func (e *APIError) Error() string { if e.Code != "" { return fmt.Sprintf("[%s] %s", e.Code, e.Description) @@ -787,7 +789,13 @@ func doRequest(ctx context.Context, req *http.Request, rcpt any) (*api.OKRespons var okResponse api.OKResponse var errResponse api.ErrResponse - req.Header.Set("Authorization", "Bearer "+config.BearerToken) + // Check if a custom Authorization token was provided + if token, ok := ctx.Value(ctxKeyAuthToken).(string); ok && token != "" { + req.Header.Set("Authorization", "Bearer "+token) + } else { + req.Header.Set("Authorization", "Bearer "+config.BearerToken) + } + req.Header.Set("Content-Type", "application/json") // Log request