diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs index 8fd6a20..b69b1be 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Controllers/CollaborateursController.cs @@ -16,11 +16,22 @@ public class CollaborateursController : BaseController [HttpPost] public override ActionResult Add(CollaborateurApiDto apiDto) { - CollaborateurApiDto? addedApiDto = Services.Add(apiDto); - if (addedApiDto == null) - return Problem(); - - return Ok(addedApiDto); + (CollaborateurApiDto?,int) addedApiDto = CollaborateursServices.Add(apiDto); + if (addedApiDto.Item1 == null) + { + if(addedApiDto.Item2 == 1) + { + return Conflict("Erreur lors de la création du collaborateur : Le mail Apside renseigné est déjà utilisé pour un autre collaborateur."); + } + else if (addedApiDto.Item2 == 2) + { + return ValidationProblem("Erreur lors de la création du collaborateur : Erreur de validation de l'entité."); + } + else + return Problem("Erreur lors de la création du collaborateur : Problème interne"); + } + + return Ok(addedApiDto.Item1); } [HttpPut("{id:int:min(1)}")] @@ -29,7 +40,7 @@ public class CollaborateursController : BaseController if (apiDto.Id != id) return Unauthorized(); - CollaborateurApiDto? updatedApiDto = Services.Update(apiDto); + CollaborateurApiDto? updatedApiDto = CollaborateursServices.Update(apiDto); if (updatedApiDto == null) return Problem(); diff --git a/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursService.cs b/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursService.cs index 6893a17..c10392a 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursService.cs +++ b/Collaborateur_Epa_Back/espacecollab.backend.appservices/CollaborateursService.cs @@ -15,20 +15,20 @@ public class CollaborateursService : GenericsServices apiDto.ApsideMail == collab.ApsideMail).Any()) { - return null; + return (null,1); } CollaborateurSqlDto sqlDto = apiDto.ToSql(); CollaborateurSqlDto? entitySqlValidation = CollaborateurRepository.Add(sqlDto); if (entitySqlValidation == null) - return null; + return (null,2); - return entitySqlValidation.ToApi(); + return (entitySqlValidation.ToApi(),0); } public override CollaborateurApiDto? Update(CollaborateurApiDto apiDto)