From 6921fecd5bebb53d551cfc871b7b81ba014b8291 Mon Sep 17 00:00:00 2001 From: "victor.gaborit" Date: Wed, 6 Mar 2024 09:24:28 +0100 Subject: [PATCH] =?UTF-8?q?traitement=20des=20erreurs=20pout=20CreateUser?= =?UTF-8?q?=20si=20l'utilisateur=20est=20d=C3=A9j=C3=A0=20en=20base=20de?= =?UTF-8?q?=20donn=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- API_SQLuedo/API/Controllers/UsersController.cs | 12 ++++++++++-- API_SQLuedo/ModelToEntity/DbDataManager.cs | 7 ++++++- API_SQLuedo/ModelToEntity/Extension.cs | 2 +- API_SQLuedo/Services/UserDataService.cs | 4 ++++ 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/API_SQLuedo/API/Controllers/UsersController.cs b/API_SQLuedo/API/Controllers/UsersController.cs index 13812b4..dc270d2 100644 --- a/API_SQLuedo/API/Controllers/UsersController.cs +++ b/API_SQLuedo/API/Controllers/UsersController.cs @@ -91,9 +91,17 @@ namespace API.Controllers { return BadRequest(); } + try + { + _logger.LogInformation("[INFORMATION] Un utilisateur a été créé : username - {username}, password - {password}, email - {email}, isAdmin - {isAdmin}", dto.Username, dto.Password, dto.Email, dto.IsAdmin); + var user = await _dataService.UserService.AddItem(dto); + return Created(nameof(GetUsers), user); + } + catch (InvalidOperationException) + { + return StatusCode(409); + } - _logger.LogInformation("[INFORMATION] Un utilisateur a été créé : username - {username}, password - {password}, email - {email}, isAdmin - {isAdmin}", dto.Username, dto.Password, dto.Email, dto.IsAdmin); - return Created(nameof(GetUsers), _dataService.UserService.AddItem(dto)); } [HttpPut] diff --git a/API_SQLuedo/ModelToEntity/DbDataManager.cs b/API_SQLuedo/ModelToEntity/DbDataManager.cs index b82de68..c571461 100644 --- a/API_SQLuedo/ModelToEntity/DbDataManager.cs +++ b/API_SQLuedo/ModelToEntity/DbDataManager.cs @@ -165,7 +165,12 @@ namespace ModelToEntity { using (var context = new UserDbContext()) { - return (await context.CreateItemAsync(item.FromModelToEntity())).FromEntityToModel() ; + var user = await context.CreateItemAsync(item.FromModelToEntity()); + if (user == null) + { + return null; + } + return user.FromEntityToModel() ; } } diff --git a/API_SQLuedo/ModelToEntity/Extension.cs b/API_SQLuedo/ModelToEntity/Extension.cs index b1ea30d..3cc95d0 100644 --- a/API_SQLuedo/ModelToEntity/Extension.cs +++ b/API_SQLuedo/ModelToEntity/Extension.cs @@ -21,7 +21,7 @@ namespace ModelToEntity { if (item == null || context.Set().Contains(item)) { - return Task.FromResult(default(T)); + return Task.FromResult(null); } context.Set().Add(item); diff --git a/API_SQLuedo/Services/UserDataService.cs b/API_SQLuedo/Services/UserDataService.cs index 6a0f952..4ace5ec 100644 --- a/API_SQLuedo/Services/UserDataService.cs +++ b/API_SQLuedo/Services/UserDataService.cs @@ -59,6 +59,10 @@ namespace Services public async Task AddItem(UserDTO? item) { var newItem = await dataServiceEF.AddItem(item.FromDTOToModel()); + if (newItem == null) + { + throw new InvalidOperationException(); + } return newItem.FromModelToDTO(); }