Search in sources :

Example 1 with AlertNotfoundException

use of com.thinkbiganalytics.alerts.api.AlertNotfoundException in project kylo by Teradata.

the class DefaultAlertManager method updateAlertChangeEntry.

protected <C extends Serializable> Alert updateAlertChangeEntry(JpaAlert.AlertId id, String descr, C content) {
    final Principal user = SecurityContextHolder.getContext().getAuthentication() != null ? SecurityContextHolder.getContext().getAuthentication() : null;
    Alert changed = this.metadataAccess.commit(() -> {
        JpaAlert alert = findAlert(id).orElseThrow(() -> new AlertNotfoundException(id));
        List<AlertChangeEvent> events = alert.getEvents();
        if (events != null && !events.isEmpty()) {
            JpaAlertChangeEvent event = (JpaAlertChangeEvent) events.get(0);
            event.setDescription(descr);
            event.setContent(content);
            event.setChangeTime(DateTime.now());
        }
        return asValue(alert);
    }, MetadataAccess.SERVICE);
    updateLastUpdatedTime();
    notifyReceivers(1);
    return changed;
}
Also used : AlertNotfoundException(com.thinkbiganalytics.alerts.api.AlertNotfoundException) JpaAlertChangeEvent(com.thinkbiganalytics.metadata.jpa.alerts.JpaAlertChangeEvent) Alert(com.thinkbiganalytics.alerts.api.Alert) JpaAlert(com.thinkbiganalytics.metadata.jpa.alerts.JpaAlert) JpaAlert(com.thinkbiganalytics.metadata.jpa.alerts.JpaAlert) Principal(java.security.Principal) AlertChangeEvent(com.thinkbiganalytics.alerts.api.AlertChangeEvent) JpaAlertChangeEvent(com.thinkbiganalytics.metadata.jpa.alerts.JpaAlertChangeEvent)

Example 2 with AlertNotfoundException

use of com.thinkbiganalytics.alerts.api.AlertNotfoundException in project kylo by Teradata.

the class DefaultAlertManager method changeAlert.

protected <C extends Serializable> Alert changeAlert(JpaAlert.AlertId id, State state, String descr, C content) {
    final Principal user = SecurityContextHolder.getContext().getAuthentication() != null ? SecurityContextHolder.getContext().getAuthentication() : null;
    Alert changed = this.metadataAccess.commit(() -> {
        JpaAlert alert = findAlert(id).orElseThrow(() -> new AlertNotfoundException(id));
        JpaAlertChangeEvent event = new JpaAlertChangeEvent(state, user, descr, content);
        alert.addEvent(event);
        // need to save it
        repository.save(alert);
        return asValue(alert);
    }, MetadataAccess.SERVICE);
    updateLastUpdatedTime();
    notifyReceivers(1);
    return changed;
}
Also used : AlertNotfoundException(com.thinkbiganalytics.alerts.api.AlertNotfoundException) JpaAlertChangeEvent(com.thinkbiganalytics.metadata.jpa.alerts.JpaAlertChangeEvent) Alert(com.thinkbiganalytics.alerts.api.Alert) JpaAlert(com.thinkbiganalytics.metadata.jpa.alerts.JpaAlert) JpaAlert(com.thinkbiganalytics.metadata.jpa.alerts.JpaAlert) Principal(java.security.Principal)

Aggregations

Alert (com.thinkbiganalytics.alerts.api.Alert)2 AlertNotfoundException (com.thinkbiganalytics.alerts.api.AlertNotfoundException)2 JpaAlert (com.thinkbiganalytics.metadata.jpa.alerts.JpaAlert)2 JpaAlertChangeEvent (com.thinkbiganalytics.metadata.jpa.alerts.JpaAlertChangeEvent)2 Principal (java.security.Principal)2 AlertChangeEvent (com.thinkbiganalytics.alerts.api.AlertChangeEvent)1