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 }