diff --git a/API_SQLuedo/API/Controllers/InquiriesController.cs b/API_SQLuedo/API/Controllers/InquiriesController.cs index 688c379..e42d14e 100644 --- a/API_SQLuedo/API/Controllers/InquiriesController.cs +++ b/API_SQLuedo/API/Controllers/InquiriesController.cs @@ -12,6 +12,8 @@ namespace API.Controllers { private IDataService _inquiryDataService; + private readonly ILogger _logger; + public InquiriesController(IDataService inquiryDataService) { _inquiryDataService = inquiryDataService; @@ -19,8 +21,45 @@ namespace API.Controllers [HttpGet("inquiries/{page}/{number}")] public IActionResult GetInquiries(int page, int number) - { + { + var nbInquiry = _inquiryDataService.GetInquiries(page, number).Count(); + if (nbInquiry == 0) + { + _logger.LogError("[ERREUR] Aucune enquête trouvé."); + return StatusCode(204); + } + _logger.LogInformation("[INFORMATION] {nb} Enquête(s) trouvée(s)", nbInquiry); return Ok(_inquiryDataService.GetInquiries(page, number)); } + + [HttpGet("inquiry/id/{id}")] + public IActionResult GetInquiryById(int id) + { + try + { + _logger.LogInformation("[INFORMATION] Enquête avec l'id {id} a été trouvé.", id); + return Ok(_inquiryDataService.GetInquiryById(id)); + } + catch (ArgumentException) + { + _logger.LogError("[ERREUR] Aucune enquête trouvée avec l'id {id}.", id); + return NotFound(); + } + } + + [HttpGet("inquiry/title/{title}")] + public IActionResult GetInquiryByTitle(string title) + { + try + { + _logger.LogInformation("[INFORMATION] Enquête avec le titre {title} a été trouvé.", title); + return Ok(_inquiryDataService.GetInquiryByTitle(title)); + } + catch (ArgumentException) + { + _logger.LogError("[ERREUR] Aucune enquête trouvée avec le titre {title}.", title); + return NotFound(); + } + } } } \ No newline at end of file diff --git a/API_SQLuedo/API/Controllers/UserController.cs b/API_SQLuedo/API/Controllers/UserController.cs index 7b61bf7..1896147 100644 --- a/API_SQLuedo/API/Controllers/UserController.cs +++ b/API_SQLuedo/API/Controllers/UserController.cs @@ -13,11 +13,14 @@ namespace API.Controllers [ApiController] public class UserController : Controller { - private IDataService _userDataService; + private IDataService _userDataService; + + private readonly ILogger _logger; - public UserController(IDataService userDataService) + public UserController(IDataService userDataService, ILogger logger) { _userDataService = userDataService; + _logger = logger; } [HttpGet("users/{page}/{number}")] @@ -26,8 +29,10 @@ namespace API.Controllers var nbUser = _userDataService.GetUsers(page, number).Count(); if(nbUser == 0) { + _logger.LogError("[ERREUR] Aucun utilisateur trouvé."); return StatusCode(204); } + _logger.LogInformation("[INFORMATION] {nb} Utilisateur(s) trouvé(s)", nbUser); return Ok(_userDataService.GetUsers(page, number)); } @@ -36,12 +41,13 @@ namespace API.Controllers { try { + _logger.LogInformation("[INFORMATION] Utilisateur avec l'id {id} a été trouvé.", id); return Ok(_userDataService.GetUserById(id)); - } catch (ArgumentException ex) - { + } catch (ArgumentException) + { + _logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id); return NotFound(); } - } [HttpGet("user/username/{username}")] @@ -49,9 +55,11 @@ namespace API.Controllers { try { + _logger.LogInformation("[INFORMATION] Utilisateur avec l'username {username} a été trouvé.", username); return Ok(_userDataService.GetUserByUsername(username)); - }catch (ArgumentException ex) + }catch (ArgumentException) { + _logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'username {username}.", username); return NotFound(); } @@ -60,40 +68,46 @@ namespace API.Controllers [HttpDelete] public IActionResult DeleteUser(int id) { - var sucess = _userDataService.DeleteUser(id); - if(sucess) + var success = _userDataService.DeleteUser(id); + if(success) { + _logger.LogInformation("[INFORMATION] L'utilisateur avec l'id {id} a été supprimé.", id); return Ok(_userDataService.DeleteUser(id)); } else { + _logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id); return NotFound(); } } [HttpPost] - public IActionResult UpdateUser(string username, string password, string email, bool isAdmin) + public IActionResult CreateUser(string username, string password, string email, bool isAdmin) { - // return Ok(_userDataService.CreateUser(username, password, email, isAdmin)); + _logger.LogInformation("[INFORMATION] Un utilisateur a été créé : username - {username}, password - {password}, email - {email}, isAdmin - {isAdmin}", username, password, email, isAdmin); return CreatedAtAction(nameof(GetUsers), _userDataService.CreateUser(username, password, email, isAdmin)); } [HttpPut] - public IActionResult CreateUser(int id, [FromBody] UserDTO userDTO) + public IActionResult UpdateUser(int id, [FromBody] UserDTO userDTO) { if(id != userDTO.Id) - { + { + _logger.LogError("[ERREUR] Problème ID - La mise à jour de l'utilisateur avec l'id {id} a échouée.", id); return BadRequest(); } if(!ModelState.IsValid) { + _logger.LogError("[ERREUR] Problème controlleur - La mise à jour de l'utilisateur avec l'id {id} a échouée.", id); return BadRequest(); } if(userDTO != null) { + _logger.LogInformation("[INFORMATION] La mise à jour de l'utilsiateur avec l'id {id} a été effectuée", id); return Ok(_userDataService.UpdateUser(id, userDTO)); } + _logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id); return NotFound(); } } diff --git a/API_SQLuedo/API/Program.cs b/API_SQLuedo/API/Program.cs index 80f106f..d4dbe01 100644 --- a/API_SQLuedo/API/Program.cs +++ b/API_SQLuedo/API/Program.cs @@ -13,7 +13,7 @@ builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); -builder.Services.AddScoped(); +builder.Services.AddScoped(); builder.Services.AddDbContext(); builder.Services.AddDbContext(options => options.UseInMemoryDatabase("appDb")); builder.Services.AddIdentityApiEndpoints().AddEntityFrameworkStores(); diff --git a/API_SQLuedo/Services/IDataService.cs b/API_SQLuedo/Services/IDataService.cs index a0c1a57..a3faad9 100644 --- a/API_SQLuedo/Services/IDataService.cs +++ b/API_SQLuedo/Services/IDataService.cs @@ -12,6 +12,7 @@ namespace Services public UserDTO UpdateUser(int id, UserDTO user); public UserDTO CreateUser(string username, string password, string email, bool isAdmin); public IEnumerable GetInquiries(int page, int number); - + public InquiryDTO GetInquiryById(int id); + public InquiryDTO GetInquiryByTitle(string title); } } diff --git a/API_SQLuedo/Services/UserDataService.cs b/API_SQLuedo/Services/UserDataService.cs index ce82782..a327454 100644 --- a/API_SQLuedo/Services/UserDataService.cs +++ b/API_SQLuedo/Services/UserDataService.cs @@ -11,10 +11,10 @@ using Microsoft.EntityFrameworkCore; namespace Services { - public class InquiryDataService : IDataService + public class UserDataService : IDataService { private UserDbContext DbContext { get; set; } - public InquiryDataService(UserDbContext context) + public UserDataService(UserDbContext context) { DbContext = context; context.Database.EnsureCreated(); @@ -93,6 +93,16 @@ namespace Services public IEnumerable GetInquiries(int page, int number) { throw new NotImplementedException(); - } + } + + public InquiryDTO GetInquiryById(int id) + { + throw new NotImplementedException(); + } + + public InquiryDTO GetInquiryByTitle(string title) + { + throw new NotImplementedException(); + } } }