From 849de4e016433c86ab3ca471dbdf2dee40c45f40 Mon Sep 17 00:00:00 2001 From: "victor.gaborit" Date: Tue, 5 Mar 2024 23:00:32 +0100 Subject: [PATCH] traitement des erreur pour GetUserById et GetUserByUsername si l'id ou le username n'est pas le bon --- API_SQLuedo/API/Controllers/UsersController.cs | 15 ++++++++------- API_SQLuedo/Model/Mappers/UserMapper.cs | 2 +- API_SQLuedo/ModelToEntity/DbDataManager.cs | 7 ++++++- API_SQLuedo/ModelToEntity/Extension.cs | 2 +- API_SQLuedo/Services/UserDataService.cs | 12 ++++-------- 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/API_SQLuedo/API/Controllers/UsersController.cs b/API_SQLuedo/API/Controllers/UsersController.cs index 1a5b42e..13812b4 100644 --- a/API_SQLuedo/API/Controllers/UsersController.cs +++ b/API_SQLuedo/API/Controllers/UsersController.cs @@ -44,8 +44,9 @@ namespace API.Controllers try { _logger.LogInformation("[INFORMATION] Utilisateur avec l'id {id} a été trouvé.", id); - return Ok(_dataService.UserService.GetItems(1, 1, UserProperty.Id.ToString(),id)); - } catch (KeyNotFoundException) + return Ok(await _dataService.UserService.GetItems(1, 1, UserProperty.Id.ToString(), id)); + } + catch (InvalidOperationException) { _logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id); return NotFound(); @@ -57,14 +58,14 @@ namespace API.Controllers { try { - _logger.LogInformation("[INFORMATION] Utilisateur avec l'username {username} a été trouvé.", username); - return Ok(_dataService.UserService.GetItems(1, 1,UserProperty.Username.ToString(), username)); - }catch (ArgumentException) + _logger.LogInformation("[INFORMATION] Utilisateur avec le username {username} a été trouvé.", username); + return Ok(await _dataService.UserService.GetItems(1, 1, UserProperty.Username.ToString(), username)); + } + catch (InvalidOperationException) { - _logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'username {username}.", username); + _logger.LogError("[ERREUR] Aucun utilisateur trouvé avec le username {username}.", username); return NotFound(); } - } [HttpDelete] diff --git a/API_SQLuedo/Model/Mappers/UserMapper.cs b/API_SQLuedo/Model/Mappers/UserMapper.cs index d62cad7..6758dc1 100644 --- a/API_SQLuedo/Model/Mappers/UserMapper.cs +++ b/API_SQLuedo/Model/Mappers/UserMapper.cs @@ -13,7 +13,7 @@ namespace Model.Mappers public static User FromEntityToModel(this UserEntity entity) { - return new User(entity.Id, entity.Username, entity.Password, entity.Email, entity.IsAdmin); + return new User(entity.Id, entity.Username, entity.Password, entity.Email, entity.IsAdmin); } public static UserDTO FromModelToDTO(this User user) diff --git a/API_SQLuedo/ModelToEntity/DbDataManager.cs b/API_SQLuedo/ModelToEntity/DbDataManager.cs index e14f522..b82de68 100644 --- a/API_SQLuedo/ModelToEntity/DbDataManager.cs +++ b/API_SQLuedo/ModelToEntity/DbDataManager.cs @@ -188,7 +188,12 @@ namespace ModelToEntity { using (var context = new UserDbContext()) { - return (await context.GetItemsWithFilter(index, count, orderingPropertyName, valueProperty)).Select(item => item.FromEntityToModel()); + var users = (await context.GetItemsWithFilter(index, count, orderingPropertyName, valueProperty)); + if(users == null) + { + return null; + } + return users.Select(item => item.FromEntityToModel()); } } } diff --git a/API_SQLuedo/ModelToEntity/Extension.cs b/API_SQLuedo/ModelToEntity/Extension.cs index 12ea2d6..b1ea30d 100644 --- a/API_SQLuedo/ModelToEntity/Extension.cs +++ b/API_SQLuedo/ModelToEntity/Extension.cs @@ -98,7 +98,7 @@ namespace ModelToEntity } } } - return Task.FromResult>(new List { default(T) }); + return Task.FromResult>(null); } var items = query.Skip(index).Take(count).ToList(); return Task.FromResult>(items); diff --git a/API_SQLuedo/Services/UserDataService.cs b/API_SQLuedo/Services/UserDataService.cs index 9a27067..6a0f952 100644 --- a/API_SQLuedo/Services/UserDataService.cs +++ b/API_SQLuedo/Services/UserDataService.cs @@ -76,16 +76,12 @@ namespace Services public async Task> GetItems(int index, int count, string? orderingPropertyName = null, object? valueProperty = null) { - try + var items = await dataServiceEF.GetItems(index, count, orderingPropertyName, valueProperty); + if (items == null) { - var items = await dataServiceEF.GetItems(index, count, orderingPropertyName, valueProperty); - return items.Select(item => item.FromModelToDTO()); + throw new InvalidOperationException("aucune donnée trouvé"); } - catch (KeyNotFoundException ex) - { - throw; - } - + return items.Select(item => item.FromModelToDTO()); } public Task> GetParagraphs(int page, int number)