import { Component, inject } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogActions, MatDialogContent, MatDialogRef, MatDialogTitle, } from '@angular/material/dialog'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import QualificationService from '../../services/qualification.service'; import { MatButton } from '@angular/material/button'; import { HttpErrorResponse } from '@angular/common/http'; import { MatIcon } from '@angular/material/icon'; @Component({ selector: 'app-delete-qualification', imports: [ FormsModule, MatDialogContent, MatDialogTitle, ReactiveFormsModule, MatDialogActions, MatButton, MatIcon, ], templateUrl: './delete.component.html', standalone: true, }) export class DeleteComponent { public id: number = inject(MAT_DIALOG_DATA); public apiError: string | null = null; private qualificationService: QualificationService = inject(QualificationService); private dialogRef: MatDialogRef = inject(MatDialogRef); delete() { this.qualificationService.delete(this.id).subscribe({ next: () => { this.dialogRef.close(true); }, error: (error: HttpErrorResponse) => { console.error('Error deleting qualification:', error); if (error.error.message.includes('SQL')) { // The API message is undescriptive but this is the most common this.apiError = 'This qualification cannot be deleted because it is currently assigned to one or more employees'; } else { this.apiError = 'API Error'; } }, }); } closeModal() { this.dialogRef.close(false); } }