41 lines
994 B
Go
Raw Normal View History

2025-08-23 19:14:16 +02:00
package httpClient
import (
"fmt"
"net/http"
2025-08-23 21:51:33 +02:00
"gitea.kleinsense.nl/DariusKlein/kleinTodo/common"
2025-08-23 19:14:16 +02:00
)
type AuthTransport struct {
Token string
}
type CustomClient struct {
client *http.Client
}
// RoundTrip transport method implementation with jwt in header
func (t *AuthTransport) RoundTrip(req *http.Request) (*http.Response, error) {
2025-08-23 21:51:33 +02:00
req.Header.Add(common.AuthHeader, fmt.Sprintf("Bearer %s", t.Token))
2025-08-23 19:14:16 +02:00
return http.DefaultTransport.RoundTrip(req)
}
// GetHttpClient Returns httpClient with jwt in headers
func getHttpClient(token string) *http.Client {
return &http.Client{Transport: &AuthTransport{Token: token}}
}
// GetHttpClient Returns CustomClient with jwt in headers
func GetHttpClient(token string) *CustomClient {
return &CustomClient{getHttpClient(token)}
}
func (client CustomClient) Do(req *http.Request) (*http.Response, error) {
resp, err := client.client.Do(req)
if err != nil {
return nil, fmt.Errorf("error sending request: %w", err)
}
return resp, nil
}