Skip to main content

electron/services/database/MonitorRepository

Database repository for monitor persistence and management using the repository pattern.

Remarks

Handles CRUD operations for site monitoring configurations using the repository pattern. All operations are wrapped in transactions and use the DatabaseService for transaction management. All mutations are atomic to ensure data consistency and proper error handling.

Key features:

  • Type-safe monitor CRUD operations with comprehensive validation
  • Transaction support for atomic operations and rollback safety
  • Dynamic SQL generation for flexible queries and updates
  • Performance optimization through prepared statements and caching
  • Comprehensive error handling with operational hooks
  • Site-monitor relationship management and integrity constraints
  • Development mode debugging with detailed logging

Examples

const monitorRepo = new MonitorRepository({ databaseService });

// Create a monitor for a site
const monitor = await monitorRepo.createMonitor({
siteId: "site123",
checkInterval: 60000,
retryAttempts: 3,
timeout: 30000,
});

// Get all monitors for a site
const monitors = await monitorRepo.getMonitorsBySiteId("site123");
await databaseService.executeTransaction(async (db) => {
const monitor1 = await monitorRepo.createMonitor(data1, db);
const monitor2 = await monitorRepo.createMonitor(data2, db);
// Both operations committed together
});

Classes

Interfaces