customer/internal/initialize/config.go

33 lines
831 B
Go
Raw Normal View History

2023-05-16 01:12:07 +00:00
package initialize
import (
"time"
"github.com/golang-jwt/jwt/v5"
2023-05-16 04:01:55 +00:00
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/models"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/utils"
"penahub.gitlab.yandexcloud.net/pena-services/customer/pkg/env"
2023-05-16 01:12:07 +00:00
)
2023-07-06 19:09:12 +00:00
// TODO: обработать возможность читать конфиги ещё по json
2023-05-16 01:12:07 +00:00
func Configuration(path string) (*models.Config, error) {
config, err := env.Parse[models.Config](path)
if err != nil {
return nil, err
}
if err := utils.ValidateConfigurationURLs(&config.Service); err != nil {
return nil, err
}
iniJWTConfiguration(&config.Service.JWT)
return config, nil
}
func iniJWTConfiguration(config *models.JWTConfiguration) {
config.Algorithm = *jwt.SigningMethodRS256
config.ExpiresIn = 15 * time.Minute
}