import { CommonModule } from '@angular/common'; import { Component, OnInit } from '@angular/core'; import { MatSnackBar } from '@angular/material/snack-bar'; import { FormBuilder, FormGroup, ReactiveFormsModule, Validators, } from '@angular/forms'; import { ActivatedRoute, Router, RouterLink, RouterOutlet, } from '@angular/router'; import { IService } from 'src/app/_interfaces/servives/service'; import { ServiceService } from 'src/app/_services/service/service.service'; @Component({ selector: 'bgui-edit-service', standalone: true, imports: [CommonModule, RouterLink, RouterOutlet, ReactiveFormsModule], templateUrl: './edit-service.component.html', styleUrl: './edit-service.component.scss', }) export class EditServiceComponent implements OnInit { editServiceForm!: FormGroup; constructor( private fb: FormBuilder, private router: Router, private route: ActivatedRoute, private service: ServiceService, private snackBar: MatSnackBar ) {} ngOnInit(): void { this.editServiceForm = this.fb.group({ service_id: ['', Validators.required], nom_service: ['', Validators.required], description: ['', Validators.required], marchand: ['', Validators.required], }); this.route.paramMap.subscribe(params => { const service_id = params.get('service_id'); console.log('id', service_id); if (service_id) { this.service.getServiceById(Number(service_id)).subscribe( (data: IService) => { this.editServiceForm.patchValue({ service_id: data.service_id, nom_service: data.nom_service, description: data.description, marchand: data.marchand, }); }, error => { console.error('Erreur lors de la récupération du service :', error); } ); } else { console.error( 'ID de service non fourni dans les paramètres de la route.' ); } }); } onSubmit(): void { if (this.editServiceForm.valid) { console.log(this.editServiceForm.value); this.service.updateService(this.editServiceForm.value).subscribe( () => { this.router.navigate(['/assistances/view-service']); this.snackBar.open('Service mis à jour avec succès', 'Fermer', { duration: 3000, }); }, error => { console.error('Erreur lors de la mise à jour du service :', error); this.snackBar.open( 'Erreur lors de la mise à jour du service', 'Fermer', { duration: 3000, } ); } ); } else { this.snackBar.open( 'Veuillez remplir correctement tous les champs du formulaire', 'Fermer', { duration: 3000, } ); } } onCancel(): void { this.router.navigate(['/assistances/view-service']); } }