refactor(client): wrap all external requests in retry transport
This commit is contained in:
@@ -38,7 +38,11 @@ func run(logger *slog.Logger) error {
|
||||
return fmt.Errorf("load configuration: %w", err)
|
||||
}
|
||||
|
||||
httpClient := &http.Client{Timeout: config.ZarinHubTimeout}
|
||||
httpClient := zarinhub.NewHTTPClient(
|
||||
config.ZarinHubTimeout,
|
||||
config.ZarinHubRetries,
|
||||
logger,
|
||||
)
|
||||
tokenManager := zarinhub.NewTokenManager(
|
||||
httpClient,
|
||||
config.ZarinHubAuthEndpoint,
|
||||
@@ -46,9 +50,10 @@ func run(logger *slog.Logger) error {
|
||||
config.ZarinHubPassword,
|
||||
)
|
||||
|
||||
authTimeout := time.Duration(config.ZarinHubRetries+1)*config.ZarinHubTimeout + 10*time.Second
|
||||
authContext, cancelAuth := context.WithTimeout(
|
||||
context.Background(),
|
||||
config.ZarinHubTimeout,
|
||||
authTimeout,
|
||||
)
|
||||
_, err = tokenManager.AccessToken(authContext)
|
||||
cancelAuth()
|
||||
|
||||
Reference in New Issue
Block a user