controllers/clusterkeycloakrealm/chain/configure_email.go (36 lines of code) (raw):
package chain
import (
"context"
"fmt"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
keycloakApi "github.com/epam/edp-keycloak-operator/api/v1alpha1"
keycloakrealmchain "github.com/epam/edp-keycloak-operator/controllers/keycloakrealm/chain"
"github.com/epam/edp-keycloak-operator/pkg/client/keycloak"
)
type ConfigureEmail struct {
client client.Client
operatorNs string
}
func NewConfigureEmail(client client.Client, operatorNs string) *ConfigureEmail {
return &ConfigureEmail{client: client, operatorNs: operatorNs}
}
func (s ConfigureEmail) ServeRequest(ctx context.Context, realm *keycloakApi.ClusterKeycloakRealm, kClient keycloak.Client) error {
if realm.Spec.Smtp == nil {
return nil
}
l := ctrl.LoggerFrom(ctx)
l.Info("Configuring email for realm")
if err := keycloakrealmchain.ConfigureRamlEmail(
ctx,
realm.Spec.RealmName,
realm.Spec.Smtp,
s.operatorNs,
kClient,
s.client,
); err != nil {
return fmt.Errorf("failed to configure email: %w", err)
}
l.Info("Email has been configured")
return nil
}