generated from PenaSide/GolangTemplate
61 lines
1.5 KiB
Go
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
|
|
}
|