All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.moskito.control.plugins.sms.twilio.StatusChangeSmsNotifier Maven / Gradle / Ivy

The newest version!
package org.moskito.control.plugins.sms.twilio;

import org.moskito.control.core.status.StatusChangeEvent;
import org.moskito.control.plugins.notifications.AbstractStatusChangeNotifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class StatusChangeSmsNotifier extends AbstractStatusChangeNotifier {

    /**
     * Configuration for sms notifications
     */
    private TwilioMessagingConfig config;

    TwilioMessagingProvider provider;

    private final static String WHATSAPP_TWILIO_PREFIX = "whatsapp:";

    /**
     * Sets configuration
     * @param config configuration for notifications
     */
    StatusChangeSmsNotifier(TwilioMessagingConfig config) {
        super(config);
        this.config = config;
        new TwilioMessagingProvider(config);
    }

    /**
     * Logger.
     */
    private static Logger log = LoggerFactory.getLogger(StatusChangeSmsNotifier.class);

    @Override
    public void notifyStatusChange(StatusChangeEvent event, TwilioMessagingNotificationConfig profile) {

        String content = new SmsContentBuilder()
                .setEvent(event)
                .setAlertLinkTemplate(config.getAlertLink())
                .build();

        for (String recipient: profile.getRecipients()) {
            provider.send(recipient, content);
        }

        for (String recipient: profile.getWaRecipients()) {
            provider.send(WHATSAPP_TWILIO_PREFIX + recipient, content);
        }

        log.info("Notification core was send for status change event: {}", event);
    }

    @Override
    public Logger getLogger() {
        return log;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy