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"; @Component({ selector: 'app-delete-qualification', imports: [ FormsModule, MatDialogContent, MatDialogTitle, ReactiveFormsModule, MatDialogActions, MatButton ], templateUrl: './delete.component.html', standalone: true, styleUrl: './delete.component.css' }) 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 modified because it is currently assigned to one or more employees'; } else { this.apiError = 'API Error'; } } }); } closeModal() { this.dialogRef.close(false); } }