🚧 Modification des services en cours

pull/29/head
Clement CHIEU 1 year ago
parent ffcf615bfc
commit b446e97273

@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Authorization; using Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Shared; using Shared;
@ -7,28 +8,21 @@ namespace API.Controllers
[Route("api/[controller]")] [Route("api/[controller]")]
[Authorize] [Authorize]
[ApiController] [ApiController]
public class InquiriesController : ControllerBase public class InquiriesController(ILogger<InquiriesController> logger, IInquiryService<InquiryDTO> inquiryService)
: ControllerBase, IInquiryService<InquiryDTO>
{ {
private IUserService<> _inquiryUserService;
private readonly ILogger<UserController> _logger;
public InquiriesController(IUserService<> inquiryUserService)
{
_inquiryUserService = inquiryUserService;
}
[HttpGet("inquiries/{page}/{number}")] [HttpGet("inquiries/{page}/{number}")]
public IActionResult GetInquiries(int page, int number) public IActionResult GetInquiries(int page, int number)
{ {
var nbInquiry = _inquiryUserService.GetInquiries(page, number).Count(); var nbInquiry = inquiryService.GetInquiries(page, number).Count();
if (nbInquiry == 0) if (nbInquiry == 0)
{ {
_logger.LogError("[ERREUR] Aucune enquête trouvé."); logger.LogError("[ERREUR] Aucune enquête trouvé.");
return StatusCode(204); return StatusCode(204);
} }
_logger.LogInformation("[INFORMATION] {nb} Enquête(s) trouvée(s)", nbInquiry);
return Ok(_inquiryUserService.GetInquiries(page, number)); logger.LogInformation("[INFORMATION] {nb} Enquête(s) trouvée(s)", nbInquiry);
return Ok(inquiryService.GetInquiries(page, number));
} }
[HttpGet("inquiry/id/{id}")] [HttpGet("inquiry/id/{id}")]
@ -36,12 +30,12 @@ namespace API.Controllers
{ {
try try
{ {
_logger.LogInformation("[INFORMATION] Enquête avec l'id {id} a été trouvé.", id); logger.LogInformation("[INFORMATION] Enquête avec l'id {id} a été trouvé.", id);
return Ok(_inquiryUserService.GetInquiryById(id)); return Ok(inquiryService.GetInquiryById(id));
} }
catch (ArgumentException) catch (ArgumentException)
{ {
_logger.LogError("[ERREUR] Aucune enquête trouvée avec l'id {id}.", id); logger.LogError("[ERREUR] Aucune enquête trouvée avec l'id {id}.", id);
return NotFound(); return NotFound();
} }
} }
@ -51,12 +45,12 @@ namespace API.Controllers
{ {
try try
{ {
_logger.LogInformation("[INFORMATION] Enquête avec le titre {title} a été trouvé.", title); logger.LogInformation("[INFORMATION] Enquête avec le titre {title} a été trouvé.", title);
return Ok(_inquiryUserService.GetInquiryByTitle(title)); return Ok(inquiryService.GetInquiryByTitle(title));
} }
catch (ArgumentException) catch (ArgumentException)
{ {
_logger.LogError("[ERREUR] Aucune enquête trouvée avec le titre {title}.", title); logger.LogError("[ERREUR] Aucune enquête trouvée avec le titre {title}.", title);
return NotFound(); return NotFound();
} }
} }

@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Authorization; using Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Shared; using Shared;
@ -8,33 +9,20 @@ namespace API.Controllers
[Authorize] [Authorize]
[ApiVersion("1.0")] [ApiVersion("1.0")]
[ApiController] [ApiController]
public class UserController : ControllerBase public class UserController(ILogger<InquiriesController> logger, IUserService<UserDTO> userService) : ControllerBase, IUserService<UserDTO>
{ {
private IUserService<> _userUserService;
private readonly ILogger<UserController> _logger;
public UserController(IUserService<> userUserService, ILogger<UserController> logger)
{
_userUserService = userUserService;
_logger = logger;
}
[HttpGet("users/{page}/{number}")] [HttpGet("users/{page}/{number}")]
public IActionResult GetUsers(int page, int number) public IActionResult GetUsers(int page, int number)
{ {
var getUsers = new InClassName(page, number); var users = userService.GetUsers(page, number).ToList();
_userUserService.GetUsers(getUsers); if (users.Count == 0)
var nbUser = getUsers.ReturnValue.Count();
if(nbUser == 0)
{ {
_logger.LogError("[ERREUR] Aucun utilisateur trouvé."); logger.LogError("[ERREUR] Aucun utilisateur trouvé.");
return StatusCode(204); return StatusCode(204);
} }
_logger.LogInformation("[INFORMATION] {nb} Utilisateur(s) trouvé(s)", nbUser);
var value = new InClassName(page, number); logger.LogInformation("[INFORMATION] {nb} Utilisateur(s) trouvé(s)", users.Count);
_userUserService.GetUsers(value); return Ok(users);
return Ok(value.ReturnValue);
} }
[HttpGet("user/id/{id}")] [HttpGet("user/id/{id}")]
@ -42,11 +30,12 @@ namespace API.Controllers
{ {
try try
{ {
_logger.LogInformation("[INFORMATION] Utilisateur avec l'id {id} a été trouvé.", id); logger.LogInformation("[INFORMATION] Utilisateur avec l'id {id} a été trouvé.", id);
return Ok(_userUserService.GetUserById(id)); return Ok(userService.GetUserById(id));
} catch (ArgumentException) }
catch (ArgumentException)
{ {
_logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id); logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id);
return NotFound(); return NotFound();
} }
} }
@ -56,63 +45,72 @@ namespace API.Controllers
{ {
try try
{ {
_logger.LogInformation("[INFORMATION] Utilisateur avec l'username {username} a été trouvé.", username); logger.LogInformation("[INFORMATION] Utilisateur avec l'username {username} a été trouvé.", username);
return Ok(_userUserService.GetUserByUsername(username)); return Ok(userService.GetUserByUsername(username));
}catch (ArgumentException) }
catch (ArgumentException)
{ {
_logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'username {username}.", username); logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'username {username}.", username);
return NotFound(); return NotFound();
} }
} }
[HttpDelete] [HttpDelete]
public IActionResult DeleteUser(int id) public IActionResult DeleteUser(int id)
{ {
var success = _userUserService.DeleteUser(id); var success = userService.DeleteUser(id);
if(success) if (success)
{ {
_logger.LogInformation("[INFORMATION] L'utilisateur avec l'id {id} a été supprimé.", id); logger.LogInformation("[INFORMATION] L'utilisateur avec l'id {id} a été supprimé.", id);
return Ok(_userUserService.DeleteUser(id)); return Ok(userService.DeleteUser(id));
} else }
else
{ {
_logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id); logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id);
return NotFound(); return NotFound();
} }
} }
[HttpPost] [HttpPost]
public IActionResult CreateUser([FromBody]UserDTO dto) public IActionResult CreateUser([FromBody] UserDTO dto)
{ {
if (dto.Username == null || dto.Password == null || dto.Email == null) if (dto.Username == null || dto.Password == null || dto.Email == null)
{ {
return BadRequest(); return BadRequest();
} }
// return Ok(_userDataService.CreateUser(username, password, email, isAdmin));
_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 Ok(userService.CreateUser(username, password, email, isAdmin));
return Created(nameof(GetUsers), _userUserService.CreateUser(dto.Username, dto.Password, dto.Email, dto.IsAdmin)); 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),
userService.CreateUser(dto.Username, dto.Password, dto.Email, dto.IsAdmin));
} }
[HttpPut] [HttpPut]
public IActionResult UpdateUser(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); 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); 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); logger.LogInformation("[INFORMATION] La mise à jour de l'utilsiateur avec l'id {id} a été effectuée",
return Ok(_userUserService.UpdateUser(id, userDTO)); id);
return Ok(userService.UpdateUser(id, userDto));
} }
_logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id);
logger.LogError("[ERREUR] Aucun utilisateur trouvé avec l'id {id}.", id);
return NotFound(); return NotFound();
} }
} }

@ -21,6 +21,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\DbContextLib\DbContextLib.csproj" />
<ProjectReference Include="..\Dto\Dto.csproj" /> <ProjectReference Include="..\Dto\Dto.csproj" />
<ProjectReference Include="..\EntityFramework\Entities.csproj" /> <ProjectReference Include="..\EntityFramework\Entities.csproj" />
<ProjectReference Include="..\Model\Model.csproj" /> <ProjectReference Include="..\Model\Model.csproj" />

@ -1,6 +1,7 @@
using Dto; using DbContextLib;
using Dto;
using Entities;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using ModelToEntities.Business;
using Shared; using Shared;
namespace ModelToEntities.Service namespace ModelToEntities.Service
@ -8,6 +9,7 @@ namespace ModelToEntities.Service
public class UserDataService : IUserService<UserDTO> public class UserDataService : IUserService<UserDTO>
{ {
private UserDbContext DbContext { get; set; } private UserDbContext DbContext { get; set; }
public UserDataService(UserDbContext context) public UserDataService(UserDbContext context)
{ {
DbContext = context; DbContext = context;
@ -21,8 +23,8 @@ namespace ModelToEntities.Service
{ {
throw new ArgumentException("Impossible de trouver l'utilisateur", nameof(id)); throw new ArgumentException("Impossible de trouver l'utilisateur", nameof(id));
} }
return userEntity.FromEntityToModel().FromModelToDTO();
return userEntity.FromEntityToModel().FromModelToDTO();
} }
public UserDTO GetUserByUsername(string username) public UserDTO GetUserByUsername(string username)
@ -32,12 +34,14 @@ namespace ModelToEntities.Service
{ {
throw new ArgumentException("Impossible de trouver l'utilisateur", nameof(username)); throw new ArgumentException("Impossible de trouver l'utilisateur", nameof(username));
} }
return userEntity.FromEntityToModel().FromModelToDTO(); return userEntity.FromEntityToModel().FromModelToDTO();
} }
public IEnumerable<UserDTO> GetUsers(int page, int number) public IEnumerable<UserDTO> GetUsers(int page, int number)
{ {
return DbContext.Users.Skip((page - 1) * number).Take(number).ToList().Select(u => u.FromEntityToModel().FromModelToDTO()); return DbContext.Users.Skip((page - 1) * number).Take(number).ToList()
.Select(u => u.FromEntityToModel().FromModelToDTO());
} }
public bool DeleteUser(int id) public bool DeleteUser(int id)
@ -47,6 +51,7 @@ namespace ModelToEntities.Service
{ {
return false; return false;
} }
DbContext.Users.Remove(userEntity); DbContext.Users.Remove(userEntity);
DbContext.SaveChangesAsync(); DbContext.SaveChangesAsync();
return true; return true;
@ -59,6 +64,7 @@ namespace ModelToEntities.Service
{ {
throw new ArgumentException("Impossible de trouver l'utilisateur", nameof(id)); throw new ArgumentException("Impossible de trouver l'utilisateur", nameof(id));
} }
updatingUser.Username = user.Username; updatingUser.Username = user.Username;
updatingUser.Password = user.Password; updatingUser.Password = user.Password;
updatingUser.Email = user.Email; updatingUser.Email = user.Email;
@ -71,16 +77,16 @@ namespace ModelToEntities.Service
public UserDTO CreateUser(string username, string password, string email, bool isAdmin) public UserDTO CreateUser(string username, string password, string email, bool isAdmin)
{ {
var newUserEntity = new User var newUserEntity = new UserEntity()
{ {
Username = username, Username = username,
Password = password, Password = password,
Email = email, Email = email,
IsAdmin = isAdmin IsAdmin = isAdmin
}; };
DbContext.Users.Add(newUserEntity.FromDTOToModel().FromModelToEntity()); DbContext.Users.Add(newUserEntity);
DbContext.SaveChangesAsync(); DbContext.SaveChangesAsync();
return newUserEntity; return newUserEntity.FromEntityToDTO();
} }
} }
} }

@ -20,7 +20,7 @@ ILogger<UserController> logger = factory.CreateLogger<UserController>();
using (var context = new UserDbContext(options)) using (var context = new UserDbContext(options))
{ {
var controller = new UserController(new UserDataService(context), logger); var controller = new UserController(logger);
void PrintUsers() void PrintUsers()
{ {

Loading…
Cancel
Save