Implement MaterialsToDeleteDAO class with secure parameterized queries following the pattern established in Task 11 (commit 5aafb23). Features: - getMaterialsToDeleteByManagers(): Query materials_to_delete table with optional filtering by manager_names using parameterized queries - getAllMaterialsToDelete(): Wrapper to retrieve all materials without filtering Security: - Uses parameterized queries (@param0, @param1, etc.) to prevent SQL injection - Parameters passed separately from query string via executeSQLServerQuery() - Input validation for empty arrays - Comprehensive test coverage including SQL injection attempt scenarios Testing: - 11 comprehensive unit tests covering all methods and edge cases - Tests verify parameterized query pattern prevents SQL injection - All tests passing (12/12 including existing tests) Files: - src/main/dao/materials-to-delete.dao.ts: DAO implementation - tests/unit/dao/materials-to-delete.dao.test.ts: Unit tests Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
7.5 KiB
7.5 KiB