feat(zarinhub): automate access token refresh
This commit is contained in:
@@ -8,12 +8,14 @@ import (
|
||||
)
|
||||
|
||||
type config struct {
|
||||
ServerAddr string
|
||||
FrontendOrigin string
|
||||
ZarinHubEndpoint string
|
||||
ZarinHubToken string
|
||||
ZarinHubTimeout time.Duration
|
||||
DatabasePath string
|
||||
ServerAddr string
|
||||
FrontendOrigin string
|
||||
ZarinHubEndpoint string
|
||||
ZarinHubAuthEndpoint string
|
||||
ZarinHubUsername string
|
||||
ZarinHubPassword string
|
||||
ZarinHubTimeout time.Duration
|
||||
DatabasePath string
|
||||
}
|
||||
|
||||
func loadConfig() (config, error) {
|
||||
@@ -21,9 +23,14 @@ func loadConfig() (config, error) {
|
||||
}
|
||||
|
||||
func readConfig(getenv func(string) string) (config, error) {
|
||||
token := strings.TrimSpace(getenv("ZARINHUB_ACCESS_TOKEN"))
|
||||
if token == "" {
|
||||
return config{}, fmt.Errorf("ZARINHUB_ACCESS_TOKEN is required")
|
||||
username := strings.TrimSpace(getenv("ZARINHUB_API_USERNAME"))
|
||||
if username == "" {
|
||||
return config{}, fmt.Errorf("ZARINHUB_API_USERNAME is required")
|
||||
}
|
||||
|
||||
password := strings.TrimSpace(getenv("ZARINHUB_API_PASSWORD"))
|
||||
if password == "" {
|
||||
return config{}, fmt.Errorf("ZARINHUB_API_PASSWORD is required")
|
||||
}
|
||||
|
||||
timeoutText := valueOrDefault(
|
||||
@@ -50,8 +57,13 @@ func readConfig(getenv func(string) string) (config, error) {
|
||||
getenv("ZARINHUB_ENDPOINT"),
|
||||
"https://zarin-hub.com/api/v5/KYC/CardToIban",
|
||||
),
|
||||
ZarinHubToken: token,
|
||||
ZarinHubTimeout: timeout,
|
||||
ZarinHubAuthEndpoint: valueOrDefault(
|
||||
getenv("ZARINHUB_AUTH_ENDPOINT"),
|
||||
"https://zarin-hub.com/api/v5/Authentication/GetToken",
|
||||
),
|
||||
ZarinHubUsername: username,
|
||||
ZarinHubPassword: password,
|
||||
ZarinHubTimeout: timeout,
|
||||
DatabasePath: valueOrDefault(
|
||||
getenv("DATABASE_PATH"),
|
||||
"./card-to-iban.db",
|
||||
|
||||
Reference in New Issue
Block a user