package com.intrbiz.bergamot.ui.action; import com.intrbiz.bergamot.model.Contact; import com.intrbiz.bergamot.model.message.notification.BackupCodeUsed; import com.intrbiz.bergamot.model.message.notification.Notification; import com.intrbiz.bergamot.model.message.notification.U2FADeviceRegistered; import com.intrbiz.bergamot.queue.NotificationQueue; import com.intrbiz.bergamot.queue.key.NotificationKey; import com.intrbiz.metadata.Action; import com.intrbiz.queue.RoutedProducer; public class U2FAActions { private NotificationQueue queue; private RoutedProducer<Notification, NotificationKey> notificationProducer; public U2FAActions() { this.queue = NotificationQueue.open(); this.notificationProducer = this.queue.publishNotifications(); } @Action("u2fa-device-registered") public void u2faDeviceRegistered(Contact contact, String deviceName, String deviceType) { synchronized (this) { this.notificationProducer.publish(new NotificationKey(contact.getSiteId()), new U2FADeviceRegistered(contact.getSite().toMOUnsafe(), contact.toMOUnsafe().addEngine("email").addEngine("sms"), deviceName, deviceType)); } } @Action("backup-code-used") public void backupCodeUsed(Contact contact, String code) { synchronized (this) { this.notificationProducer.publish(new NotificationKey(contact.getSiteId()), new BackupCodeUsed(contact.getSite().toMOUnsafe(), contact.toMOUnsafe().addEngine("email").addEngine("sms"), code)); } } }