UNPKG

dt-common-device

Version:

A secure and robust device management library for IoT applications

197 lines (196 loc) 8.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createBasicIssue = createBasicIssue; exports.createDeviceIssue = createDeviceIssue; exports.createSecurityIssue = createSecurityIssue; exports.createEnergyIssue = createEnergyIssue; exports.createHubIssue = createHubIssue; exports.createUserIssue = createUserIssue; exports.createPropertyIssue = createPropertyIssue; exports.createMaintenanceIssue = createMaintenanceIssue; exports.createUrgentIssue = createUrgentIssue; exports.createMultipleIssues = createMultipleIssues; exports.createIssueWithDueDate = createIssueWithDueDate; exports.createUnassignedIssue = createUnassignedIssue; const IssueBuilder_1 = require("./IssueBuilder"); const issue_types_1 = require("./issue.types"); /** * Example usage of IssueBuilder * This file demonstrates various ways to use the IssueBuilder pattern */ // Example 1: Basic issue creation function createBasicIssue() { const issueData = new IssueBuilder_1.IssueBuilder() .setCategory(issue_types_1.IssuesCategory.OPERATIONS) .setPropertyId("prop123") .setTitle("Device Maintenance Required") .setDescription("Device requires scheduled maintenance") .setEntityId("device456") .setEntityType(issue_types_1.EntityType.DEVICE) .setPriority(issue_types_1.IssuePriority.HIGH) .setAssignedTo("tech789") .setCreatedBy("user123") .setDueDate(new Date("2024-01-15")) .build(); return issueData; } // Example 2: Using static factory methods function createDeviceIssue() { const issueData = IssueBuilder_1.IssueBuilder.createDeviceIssue("device123", "prop456") .setCategory(issue_types_1.IssuesCategory.READINESS) .setTitle("Device Firmware Update") .setDescription("Device firmware update is available") .setPriority(issue_types_1.IssuePriority.MEDIUM) .setAssignedTo("admin") .setCreatedBy("system") .setDueDate(new Date("2024-01-20")) .build(); return issueData; } // Example 3: Using predefined issue types function createSecurityIssue() { const issueData = IssueBuilder_1.IssueBuilder.createSecurityIssue() .setPropertyId("prop789") .setTitle("Security Breach Detected") .setDescription("Unauthorized access attempt detected") .setEntityId("user123") .setEntityType(issue_types_1.EntityType.USER) .setAssignedTo("security-team") .setCreatedBy("security-system") .setDueDate(new Date("2024-01-10")) .build(); return issueData; } // Example 4: Creating energy issue function createEnergyIssue() { const issueData = IssueBuilder_1.IssueBuilder.createEnergyIssue() .setPropertyId("prop101") .setTitle("High Energy Consumption") .setDescription("Energy usage is 20% above normal levels") .setEntityId("zone456") .setEntityType(issue_types_1.EntityType.COLLECTION) .setAssignedTo("energy-manager") .setCreatedBy("energy-monitor") .setDueDate(new Date("2024-01-25")) .build(); return issueData; } // Example 5: Creating hub issue function createHubIssue() { const issueData = IssueBuilder_1.IssueBuilder.createHubIssue("hub789", "prop202") .setCategory(issue_types_1.IssuesCategory.OPERATIONS) .setTitle("Hub Connection Lost") .setDescription("Hub has lost connection to the network") .setPriority(issue_types_1.IssuePriority.CRITICAL) .setAssignedTo("network-admin") .setCreatedBy("network-monitor") .setDueDate(new Date("2024-01-05")) .build(); return issueData; } // Example 6: Creating user-specific issue function createUserIssue() { const issueData = IssueBuilder_1.IssueBuilder.createUserIssue("user456", "prop303") .setCategory(issue_types_1.IssuesCategory.SECURITY) .setTitle("User Access Review Required") .setDescription("User access permissions need review") .setPriority(issue_types_1.IssuePriority.MEDIUM) .setAssignedTo("hr-admin") .setCreatedBy("access-control") .setDueDate(new Date("2024-01-30")) .build(); return issueData; } // Example 7: Creating property-specific issue function createPropertyIssue() { const issueData = IssueBuilder_1.IssueBuilder.createPropertyIssue("prop404") .setCategory(issue_types_1.IssuesCategory.READINESS) .setTitle("Property Maintenance Schedule") .setDescription("Annual property maintenance is due") .setPriority(issue_types_1.IssuePriority.LOW) .setAssignedTo("property-manager") .setCreatedBy("maintenance-system") .setDueDate(new Date("2024-02-15")) .build(); return issueData; } // Example 8: Creating maintenance issue function createMaintenanceIssue() { const issueData = IssueBuilder_1.IssueBuilder.createMaintenanceIssue("prop505", "device789", issue_types_1.EntityType.DEVICE) .setTitle("Scheduled Device Maintenance") .setDescription("Regular maintenance is scheduled for this device") .setAssignedTo("technician") .setCreatedBy("maintenance-scheduler") .setDueDate(new Date("2024-01-12")) .build(); return issueData; } // Example 9: Creating urgent issue function createUrgentIssue() { const issueData = IssueBuilder_1.IssueBuilder.createUrgentIssue("prop606", "hub123", issue_types_1.EntityType.HUB) .setTitle("Critical Hub Failure") .setDescription("Hub is experiencing critical failures") .setAssignedTo("emergency-tech") .setCreatedBy("monitoring-system") .setDueDate(new Date("2024-01-03")) .build(); return issueData; } // Example 10: Reusing builder instance function createMultipleIssues() { const builder = new IssueBuilder_1.IssueBuilder() .setPropertyId("prop707") .setCreatedBy("batch-processor"); const issue1 = builder .setCategory(issue_types_1.IssuesCategory.OPERATIONS) .setTitle("Device Temperature High") .setDescription("Device temperature exceeds normal operating range") .setEntityId("device789") .setEntityType(issue_types_1.EntityType.DEVICE) .setPriority(issue_types_1.IssuePriority.HIGH) .setAssignedTo("tech-support") .build(); const issue2 = builder .reset() .setPropertyId("prop707") .setCategory(issue_types_1.IssuesCategory.ENERGY) .setTitle("Low Battery Warning") .setDescription("Device battery level is below 20%") .setEntityId("device789") .setEntityType(issue_types_1.EntityType.DEVICE) .setPriority(issue_types_1.IssuePriority.MEDIUM) .setAssignedTo("maintenance-team") .setCreatedBy("batch-processor") .build(); return [issue1, issue2]; } // Example 11: Creating issue with due date calculation function createIssueWithDueDate() { const dueDate = new Date(); dueDate.setDate(dueDate.getDate() + 7); // Due in 7 days const issueData = new IssueBuilder_1.IssueBuilder() .setCategory(issue_types_1.IssuesCategory.READINESS) .setPropertyId("prop808") .setTitle("System Update Required") .setDescription("System requires critical security update") .setEntityType(issue_types_1.EntityType.PROPERTY) .setPriority(issue_types_1.IssuePriority.HIGH) .setAssignedTo("system-admin") .setCreatedBy("update-manager") .setDueDate(dueDate) .build(); return issueData; } // Example 12: Creating issue without assignment function createUnassignedIssue() { const issueData = new IssueBuilder_1.IssueBuilder() .setCategory(issue_types_1.IssuesCategory.OTHER) .setPropertyId("prop909") .setTitle("General Inquiry") .setDescription("General inquiry about system functionality") .setEntityType(issue_types_1.EntityType.PROPERTY) .setPriority(issue_types_1.IssuePriority.LOW) .setCreatedBy("user-inquiry") .build(); return issueData; }