UNPKG

dt-common-device

Version:

A secure and robust device management library for IoT applications

118 lines (117 loc) 4.71 kB
"use strict"; 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]; }