Continuation des méthodes CRUD mais également l'implémentation du logger.

pull/23/head
Erwan MENAGER 1 year ago
parent e8754ab247
commit 00cc2e3a2d

@ -12,6 +12,8 @@ namespace API.Controllers
{ {
private IDataService _inquiryDataService; private IDataService _inquiryDataService;
private readonly ILogger<UserController> _logger;
public InquiriesController(IDataService inquiryDataService) public InquiriesController(IDataService inquiryDataService)
{ {
_inquiryDataService = inquiryDataService; _inquiryDataService = inquiryDataService;
@ -20,7 +22,44 @@ namespace API.Controllers
[HttpGet("inquiries/{page}/{number}")] [HttpGet("inquiries/{page}/{number}")]
public IActionResult GetInquiries(int page, int 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)); 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();
}
}
} }
} }

@ -15,9 +15,12 @@ namespace API.Controllers
{ {
private IDataService _userDataService; private IDataService _userDataService;
public UserController(IDataService userDataService) private readonly ILogger<UserController> _logger;
public UserController(IDataService userDataService, ILogger<UserController> logger)
{ {
_userDataService = userDataService; _userDataService = userDataService;
_logger = logger;
} }
[HttpGet("users/{page}/{number}")] [HttpGet("users/{page}/{number}")]
@ -26,8 +29,10 @@ namespace API.Controllers
var nbUser = _userDataService.GetUsers(page, number).Count(); var nbUser = _userDataService.GetUsers(page, number).Count();
if(nbUser == 0) if(nbUser == 0)
{ {
_logger.LogError("[ERREUR] Aucun utilisateur trouvé.");
return StatusCode(204); return StatusCode(204);
} }
_logger.LogInformation("[INFORMATION] {nb} Utilisateur(s) trouvé(s)", nbUser);
return Ok(_userDataService.GetUsers(page, number)); return Ok(_userDataService.GetUsers(page, number));
} }
@ -36,12 +41,13 @@ namespace API.Controllers
{ {
try try
{ {
_logger.LogInformation("[INFORMATION] Utilisateur avec l'id {id} a été trouvé.", id);
return Ok(_userDataService.GetUserById(id)); return Ok(_userDataService.GetUserById(id));
} catch (ArgumentException ex) } catch (ArgumentException)
{ {
_logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id);
return NotFound(); return NotFound();
} }
} }
[HttpGet("user/username/{username}")] [HttpGet("user/username/{username}")]
@ -49,9 +55,11 @@ namespace API.Controllers
{ {
try try
{ {
_logger.LogInformation("[INFORMATION] Utilisateur avec l'username {username} a été trouvé.", username);
return Ok(_userDataService.GetUserByUsername(username)); return Ok(_userDataService.GetUserByUsername(username));
}catch (ArgumentException ex) }catch (ArgumentException)
{ {
_logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'username {username}.", username);
return NotFound(); return NotFound();
} }
@ -60,40 +68,46 @@ namespace API.Controllers
[HttpDelete] [HttpDelete]
public IActionResult DeleteUser(int id) public IActionResult DeleteUser(int id)
{ {
var sucess = _userDataService.DeleteUser(id); var success = _userDataService.DeleteUser(id);
if(sucess) if(success)
{ {
_logger.LogInformation("[INFORMATION] L'utilisateur avec l'id {id} a été supprimé.", id);
return Ok(_userDataService.DeleteUser(id)); return Ok(_userDataService.DeleteUser(id));
} else } else
{ {
_logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id);
return NotFound(); return NotFound();
} }
} }
[HttpPost] [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)); // 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)); return CreatedAtAction(nameof(GetUsers), _userDataService.CreateUser(username, password, email, isAdmin));
} }
[HttpPut] [HttpPut]
public IActionResult CreateUser(int id, [FromBody] UserDTO userDTO) public IActionResult UpdateUser(int id, [FromBody] UserDTO userDTO)
{ {
if(id != userDTO.Id) 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(); return BadRequest();
} }
if(!ModelState.IsValid) 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(); return BadRequest();
} }
if(userDTO != null) 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)); return Ok(_userDataService.UpdateUser(id, userDTO));
} }
_logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id);
return NotFound(); return NotFound();
} }
} }

@ -13,7 +13,7 @@ builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer(); builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(); builder.Services.AddSwaggerGen();
builder.Services.AddScoped<IDataService, InquiryDataService>(); builder.Services.AddScoped<IDataService, UserDataService>();
builder.Services.AddDbContext<DbContext, UserDbContext>(); builder.Services.AddDbContext<DbContext, UserDbContext>();
builder.Services.AddDbContext<WebAPIDbContext>(options => options.UseInMemoryDatabase("appDb")); builder.Services.AddDbContext<WebAPIDbContext>(options => options.UseInMemoryDatabase("appDb"));
builder.Services.AddIdentityApiEndpoints<IdentityUser>().AddEntityFrameworkStores<WebAPIDbContext>(); builder.Services.AddIdentityApiEndpoints<IdentityUser>().AddEntityFrameworkStores<WebAPIDbContext>();

@ -12,6 +12,7 @@ namespace Services
public UserDTO UpdateUser(int id, UserDTO user); public UserDTO UpdateUser(int id, UserDTO user);
public UserDTO CreateUser(string username, string password, string email, bool isAdmin); public UserDTO CreateUser(string username, string password, string email, bool isAdmin);
public IEnumerable<InquiryDTO> GetInquiries(int page, int number); public IEnumerable<InquiryDTO> GetInquiries(int page, int number);
public InquiryDTO GetInquiryById(int id);
public InquiryDTO GetInquiryByTitle(string title);
} }
} }

@ -11,10 +11,10 @@ using Microsoft.EntityFrameworkCore;
namespace Services namespace Services
{ {
public class InquiryDataService : IDataService public class UserDataService : IDataService
{ {
private UserDbContext DbContext { get; set; } private UserDbContext DbContext { get; set; }
public InquiryDataService(UserDbContext context) public UserDataService(UserDbContext context)
{ {
DbContext = context; DbContext = context;
context.Database.EnsureCreated(); context.Database.EnsureCreated();
@ -94,5 +94,15 @@ namespace Services
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
public InquiryDTO GetInquiryById(int id)
{
throw new NotImplementedException();
}
public InquiryDTO GetInquiryByTitle(string title)
{
throw new NotImplementedException();
}
} }
} }

Loading…
Cancel
Save