func convertEmailSpecToMap()

in controllers/keycloakrealm/chain/configure_email.go [78:123]


func convertEmailSpecToMap(
	ctx context.Context,
	emailSpec *common.SMTP,
	secretsNamespace string,
	k8sClient client.Client,
) (map[string]string, error) {
	emailMap := make(map[string]string)
	emailMap["from"] = emailSpec.Template.From
	emailMap["fromDisplayName"] = emailSpec.Template.FromDisplayName
	emailMap["replyTo"] = emailSpec.Template.ReplyTo
	emailMap["replyToDisplayName"] = emailSpec.Template.ReplyToDisplayName
	emailMap["envelopeFrom"] = emailSpec.Template.EnvelopeFrom
	emailMap["host"] = emailSpec.Connection.Host
	emailMap["port"] = strconv.Itoa(emailSpec.Connection.Port)
	emailMap["ssl"] = strconv.FormatBool(emailSpec.Connection.EnableSSL)
	emailMap["starttls"] = strconv.FormatBool(emailSpec.Connection.EnableStartTLS)
	emailMap["auth"] = strconv.FormatBool(emailSpec.Connection.Authentication != nil)

	if emailSpec.Connection.Authentication != nil {
		username, err := secretref.GetValueFromSourceRefOrVal(
			ctx,
			&emailSpec.Connection.Authentication.Username,
			secretsNamespace,
			k8sClient,
		)
		if err != nil {
			return nil, fmt.Errorf("unable to get username: %w", err)
		}

		emailMap["user"] = username

		password, err := secretref.GetValueFromSourceRef(
			ctx,
			&emailSpec.Connection.Authentication.Password,
			secretsNamespace,
			k8sClient,
		)
		if err != nil {
			return nil, fmt.Errorf("unable to get password: %w", err)
		}

		emailMap["password"] = password
	}

	return emailMap, nil
}