🚧 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 Shared;
@ -7,28 +8,21 @@ namespace API.Controllers
[Route("api/[controller]")]
[Authorize]
[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}")]
public IActionResult GetInquiries(int page, int number)
{
var nbInquiry = _inquiryUserService.GetInquiries(page, number).Count();
var nbInquiry = inquiryService.GetInquiries(page, number).Count();
if (nbInquiry == 0)
{
_logger.LogError("[ERREUR] Aucune enquête trouvé.");
logger.LogError("[ERREUR] Aucune enquête trouvé.");
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}")]
@ -36,12 +30,12 @@ namespace API.Controllers
{
try
{
_logger.LogInformation("[INFORMATION] Enquête avec l'id {id} a été trouvé.", id);
return Ok(_inquiryUserService.GetInquiryById(id));
logger.LogInformation("[INFORMATION] Enquête avec l'id {id} a été trouvé.", id);
return Ok(inquiryService.GetInquiryById(id));
}
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();
}
}
@ -51,12 +45,12 @@ namespace API.Controllers
{
try
{
_logger.LogInformation("[INFORMATION] Enquête avec le titre {title} a été trouvé.", title);
return Ok(_inquiryUserService.GetInquiryByTitle(title));
logger.LogInformation("[INFORMATION] Enquête avec le titre {title} a été trouvé.", title);
return Ok(inquiryService.GetInquiryByTitle(title));
}
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();
}
}

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

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

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

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

Loading…
Cancel
Save