2023-06-22 09:36:43 +00:00
|
|
|
package initialize
|
|
|
|
|
|
|
|
import (
|
|
|
|
"time"
|
|
|
|
|
|
|
|
"github.com/golang-jwt/jwt/v5"
|
2024-11-18 07:23:41 +00:00
|
|
|
"gitea.pena/PenaSide/customer/internal/models"
|
|
|
|
"gitea.pena/PenaSide/customer/internal/utils"
|
|
|
|
"gitea.pena/PenaSide/customer/pkg/env"
|
2023-06-22 09:36:43 +00:00
|
|
|
)
|
|
|
|
|
2023-07-07 01:57:06 +00:00
|
|
|
// TODO: обработать возможность читать конфиги ещё по json
|
|
|
|
|
2023-06-22 09:36:43 +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
|
|
|
|
}
|