customer/internal/utils/validate_configuration_urls.go
2023-05-16 04:12:34 +03:00

61 lines
1.5 KiB
Go

package utils
import (
"fmt"
"penahub.gitlab.yandexcloud.net/pena-services/pena-social-auth/internal/models"
"penahub.gitlab.yandexcloud.net/pena-services/pena-social-auth/pkg/validate"
)
func ValidateConfigurationURLs(config *models.ServiceConfiguration) error {
if err := validateGoogleURLs(&config.Google.URL); err != nil {
return err
}
if err := validateAmocrmURLs(&config.Amocrm.URL); err != nil {
return err
}
return validateAuthMicroserviceURLs(&config.AuthMicroservice.URL)
}
func validateGoogleURLs(urls *models.GoogleURL) error {
if !validate.URL(urls.OAuthHost) {
return fmt.Errorf("invalid google oauth host: %s", urls.OAuthHost)
}
return nil
}
func validateAmocrmURLs(urls *models.AmocrmURL) error {
if !validate.URL(urls.OAuthHost) {
return fmt.Errorf("invalid amocrm oauth host: %s", urls.OAuthHost)
}
if !validate.URL(urls.UserInfo) {
return fmt.Errorf("invalid amocrm user info url: %s", urls.UserInfo)
}
if !validate.URL(urls.AccessToken) {
return fmt.Errorf("invalid amocrm access token url: %s", urls.AccessToken)
}
return nil
}
func validateAuthMicroserviceURLs(urls *models.AuthMicroServiceURL) error {
if !validate.URL(urls.Exchange) {
return fmt.Errorf("invalid auth microservice exchange url: %s", urls.Exchange)
}
if !validate.URL(urls.Register) {
return fmt.Errorf("invalid auth register url: %s", urls.Register)
}
if !validate.URL(urls.User) {
return fmt.Errorf("invalid auth user url: %s", urls.User)
}
return nil
}