dt-common-device
Version:
A secure and robust device management library for IoT applications
118 lines (117 loc) • 4.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createBasicAlert = createBasicAlert;
exports.createDeviceAlert = createDeviceAlert;
exports.createSecurityAlert = createSecurityAlert;
exports.createEnergyAlert = createEnergyAlert;
exports.createHubAlert = createHubAlert;
exports.createSnoozedAlert = createSnoozedAlert;
exports.createMultipleAlerts = createMultipleAlerts;
const AlertBuilder_1 = require("./AlertBuilder");
const alert_types_1 = require("./alert.types");
/**
* Example usage of AlertBuilder
* This file demonstrates various ways to use the AlertBuilder pattern
*/
// Example 1: Basic alert creation
function createBasicAlert() {
const alertData = new AlertBuilder_1.AlertBuilder()
.setCategory(alert_types_1.AlertCategory.OPERATIONS)
.setPropertyId("prop123")
.setTitle("Device Offline")
.setDescription("Device has been offline for more than 5 minutes")
.setEntityId("device456")
.setEntityType(alert_types_1.EntityType.DEVICE)
.setSeverity(alert_types_1.AlertSeverity.HIGH)
.setCreatedBy("user789")
.build();
return alertData;
}
// Example 2: Using static factory methods
function createDeviceAlert() {
const alertData = AlertBuilder_1.AlertBuilder.createDeviceAlert("device123", "prop456")
.setCategory(alert_types_1.AlertCategory.READINESS)
.setTitle("Device Maintenance Required")
.setDescription("Device firmware update is available")
.setSeverity(alert_types_1.AlertSeverity.MEDIUM)
.setCreatedBy("system")
.build();
return alertData;
}
// Example 3: Using predefined alert types
function createSecurityAlert() {
const alertData = AlertBuilder_1.AlertBuilder.createSecurityAlert()
.setPropertyId("prop789")
.setTitle("Unauthorized Access Attempt")
.setDescription("Multiple failed login attempts detected")
.setEntityId("user123")
.setEntityType(alert_types_1.EntityType.USER)
.setCreatedBy("security-system")
.build();
return alertData;
}
// Example 4: Creating energy alert
function createEnergyAlert() {
const alertData = AlertBuilder_1.AlertBuilder.createEnergyAlert()
.setPropertyId("prop101")
.setTitle("High Energy Consumption")
.setDescription("Energy usage is 20% above normal levels")
.setEntityId("zone456")
.setEntityType(alert_types_1.EntityType.COLLECTION)
.setCreatedBy("energy-monitor")
.build();
return alertData;
}
// Example 5: Creating hub alert
function createHubAlert() {
const alertData = AlertBuilder_1.AlertBuilder.createHubAlert("hub789", "prop202")
.setCategory(alert_types_1.AlertCategory.OPERATIONS)
.setTitle("Hub Connection Lost")
.setDescription("Hub has lost connection to the network")
.setSeverity(alert_types_1.AlertSeverity.CRITICAL)
.setCreatedBy("network-monitor")
.build();
return alertData;
}
// Example 6: Alert with snooze
function createSnoozedAlert() {
const snoozeUntil = new Date();
snoozeUntil.setHours(snoozeUntil.getHours() + 2); // Snooze for 2 hours
const alertData = new AlertBuilder_1.AlertBuilder()
.setCategory(alert_types_1.AlertCategory.OTHER)
.setPropertyId("prop303")
.setTitle("Scheduled Maintenance")
.setDescription("System maintenance scheduled for tonight")
.setEntityType(alert_types_1.EntityType.PROPERTY)
.setSeverity(alert_types_1.AlertSeverity.INFO)
.setCreatedBy("admin")
.setSnoozeUntil(snoozeUntil)
.build();
return alertData;
}
// Example 7: Reusing builder instance
function createMultipleAlerts() {
const builder = new AlertBuilder_1.AlertBuilder()
.setPropertyId("prop404")
.setCreatedBy("system");
const alert1 = builder
.setCategory(alert_types_1.AlertCategory.OPERATIONS)
.setTitle("Device Temperature High")
.setDescription("Device temperature exceeds normal operating range")
.setEntityId("device789")
.setEntityType(alert_types_1.EntityType.DEVICE)
.setSeverity(alert_types_1.AlertSeverity.HIGH)
.build();
const alert2 = builder
.reset()
.setPropertyId("prop404")
.setCategory(alert_types_1.AlertCategory.ENERGY)
.setTitle("Low Battery Warning")
.setDescription("Device battery level is below 20%")
.setEntityId("device789")
.setEntityType(alert_types_1.EntityType.DEVICE)
.setSeverity(alert_types_1.AlertSeverity.MEDIUM)
.setCreatedBy("system")
.build();
return [alert1, alert2];
}