Réglage de différents bugs et incohérences liés aux succès
continuous-integration/drone/push Build is passing Details

pull/39/head
Johnny RATTON 1 year ago
parent a86a027640
commit 5a8d8fe4e9

@ -47,7 +47,7 @@ namespace API.Controllers
try try
{ {
_logger.LogInformation("[INFORMATION] Le succès avec l'id de l'utilisateur {id} a été trouvé.", id); _logger.LogInformation("[INFORMATION] Le succès avec l'id de l'utilisateur {id} a été trouvé.", id);
return Ok(_successDataService.GetSuccessByUserId(id)); return Ok(_successDataService.GetSuccessesByUserId(id));
} }
catch (ArgumentException) catch (ArgumentException)
{ {
@ -65,7 +65,7 @@ namespace API.Controllers
{ {
_logger.LogInformation("[INFORMATION] Utilisateur avec l'id de l'enquête {inquiryId} a été trouvé.", _logger.LogInformation("[INFORMATION] Utilisateur avec l'id de l'enquête {inquiryId} a été trouvé.",
id); id);
return Ok(_successDataService.GetSuccessByInquiryId(id)); return Ok(_successDataService.GetSuccessesByInquiryId(id));
} }
catch (ArgumentException) catch (ArgumentException)
{ {
@ -74,20 +74,20 @@ namespace API.Controllers
} }
} }
[HttpDelete("success/{id:int}")] [HttpDelete("success/{idUser:int}/{idInquiry:int}")]
[ProducesResponseType(typeof(SuccessDTO), 200)] [ProducesResponseType(typeof(SuccessDTO), 200)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]
public IActionResult DeleteSuccess(int id) public IActionResult DeleteSuccess(int idUser, int idInquiry)
{ {
var success = _successDataService.DeleteSuccess(id); var success = _successDataService.DeleteSuccess(idUser, idInquiry);
if (success) if (success)
{ {
_logger.LogInformation("[INFORMATION] Le succès avec l'id {id} a été supprimé.", id); _logger.LogInformation("[INFORMATION] Le succès avec l'id {id} a été supprimé.", idUser);
return Ok(_successDataService.DeleteSuccess(id)); return Ok(success);
} }
else else
{ {
_logger.LogError("[ERREUR] Aucun succès trouvé avec l'id {id}.", id); _logger.LogError("[ERREUR] Aucun succès trouvé avec l'id {id}.", idUser);
return NotFound(); return NotFound();
} }
} }
@ -108,35 +108,34 @@ namespace API.Controllers
_successDataService.CreateSuccess(dto.UserId, dto.InquiryId, dto.IsFinished)); _successDataService.CreateSuccess(dto.UserId, dto.InquiryId, dto.IsFinished));
} }
[HttpPut("success/{id:int}")] [HttpPut("success/{idUser:int}/{idInquiry:int}")]
[ProducesResponseType(typeof(SuccessDTO), 200)] [ProducesResponseType(typeof(SuccessDTO), 200)]
[ProducesResponseType(typeof(string), 400)] [ProducesResponseType(typeof(string), 400)]
[ProducesResponseType(typeof(string), 404)] [ProducesResponseType(typeof(string), 404)]
public IActionResult UpdateSuccess(int id, [FromBody] SuccessDTO successDTO) public IActionResult UpdateSuccess(int idUser, int idInquiry, [FromBody] SuccessDTO successDTO)
{ {
if (id != successDTO.UserId) if (idUser != successDTO.UserId || idInquiry != successDTO.InquiryId)
{ {
_logger.LogError( _logger.LogError(
"[ERREUR] Problème ID - La mise à jour du succès avec l'id de l'utilisateur {id} a échouée.", id); "[ERREUR] Problème ID - La mise à jour du succès avec l'id de l'utilisateur {id} a échouée.", idUser);
return BadRequest(); return BadRequest();
} }
if (!ModelState.IsValid) if (!ModelState.IsValid)
{ {
_logger.LogError( _logger.LogError(
"[ERREUR] Problème controlleur - La mise à jour du succès avec l'id de l'utilisateur {id} a échouée.", "[ERREUR] Problème controlleur - La mise à jour du succès avec l'id de l'utilisateur {id} a échouée.",
id); idUser);
return BadRequest(); return BadRequest();
} }
if (successDTO != null) if (successDTO != null)
{ {
_logger.LogInformation( _logger.LogInformation(
"[INFORMATION] La mise à jour du succès avec l'id de l'utilisateur {id} a été effectuée", id); "[INFORMATION] La mise à jour du succès avec l'id de l'utilisateur {id} a été effectuée", idUser);
return Ok(_successDataService.UpdateSuccess(id, successDTO)); return Ok(_successDataService.UpdateSuccess(idUser,idInquiry, successDTO));
} }
_logger.LogError("[ERREUR] Aucun succès trouvé avec l'id de l'utilisateur {id}.", id); _logger.LogError("[ERREUR] Aucun succès trouvé avec l'id de l'utilisateur {id}.", idUser);
return NotFound(); return NotFound();
} }
} }

@ -14,14 +14,14 @@ public class SuccessDataServiceApi(ISuccessService<SuccessEntity> sucessService)
return successesEntities.Select(e => e.FromEntityToDTO()).ToList(); return successesEntities.Select(e => e.FromEntityToDTO()).ToList();
} }
public SuccessDTO GetSuccessByUserId(int id) => sucessService.GetSuccessByUserId(id).FromEntityToDTO(); public IEnumerable<SuccessDTO> GetSuccessesByUserId(int id) => sucessService.GetSuccessesByUserId(id).Select(s => s.FromEntityToDTO());
public SuccessDTO GetSuccessByInquiryId(int id) => sucessService.GetSuccessByInquiryId(id).FromEntityToDTO(); public IEnumerable<SuccessDTO> GetSuccessesByInquiryId(int id) => sucessService.GetSuccessesByInquiryId(id).Select(s => s.FromEntityToDTO());
public bool DeleteSuccess(int id) => sucessService.DeleteSuccess(id); public bool DeleteSuccess(int idUser, int idInquiry) => sucessService.DeleteSuccess(idUser, idInquiry);
public SuccessDTO UpdateSuccess(int id, SuccessDTO success) => public SuccessDTO UpdateSuccess(int idUser, int idInquiry, SuccessDTO success) =>
sucessService.UpdateSuccess(id, success.FromDTOToEntity()).FromEntityToDTO(); sucessService.UpdateSuccess(idUser, idInquiry, success.FromDTOToEntity()).FromEntityToDTO();
public SuccessDTO CreateSuccess(int userId, int inquiryId, bool isFinished) => public SuccessDTO CreateSuccess(int userId, int inquiryId, bool isFinished) =>
sucessService.CreateSuccess(userId, inquiryId, isFinished).FromEntityToDTO(); sucessService.CreateSuccess(userId, inquiryId, isFinished).FromEntityToDTO();

@ -40,55 +40,53 @@ public class SuccessDataService : ISuccessService<SuccessEntity>
return successes; return successes;
} }
public SuccessEntity GetSuccessByUserId(int id) public IEnumerable<SuccessEntity> GetSuccessesByUserId(int id)
{ {
var userEntity = DbContext.Successes.FirstOrDefault(u => u.UserId == id); var successes = DbContext.Successes.Where(u => u.UserId == id);
if (userEntity == null) if (successes == null)
{ {
throw new ArgumentException("Impossible de trouver le succès", nameof(id)); throw new ArgumentException("Impossible de trouver le succès", nameof(id));
} }
return userEntity; return successes;
} }
public SuccessEntity GetSuccessByInquiryId(int id) public IEnumerable<SuccessEntity> GetSuccessesByInquiryId(int id)
{ {
var userEntity = DbContext.Successes.FirstOrDefault(u => u.InquiryId == id); var successes = DbContext.Successes.Where(u => u.InquiryId == id);
if (userEntity == null) if (successes == null)
{ {
throw new ArgumentException("Impossible de trouver le succès", nameof(id)); throw new ArgumentException("Impossible de trouver le succès", nameof(id));
} }
return userEntity; return successes;
} }
public bool DeleteSuccess(int id) public bool DeleteSuccess(int idUser, int idInquiry)
{ {
var successEntity = DbContext.Successes.FirstOrDefault(u => u.UserId == id); var successEntity = DbContext.Successes.FirstOrDefault(u => u.UserId == idUser && u.InquiryId == idInquiry);
if (successEntity == null) if (successEntity == null)
{ {
return false; return false;
} }
DbContext.Successes.Remove(successEntity); DbContext.Successes.Remove(successEntity);
DbContext.SaveChangesAsync(); DbContext.SaveChangesAsync();
return true; return true;
} }
public SuccessEntity UpdateSuccess(int id, SuccessEntity success) public SuccessEntity UpdateSuccess(int idUser, int idInquiry, SuccessEntity success)
{ {
var updatingSuccess = DbContext.Successes.FirstOrDefault(u => u.UserId == id); var updatingSuccess = DbContext.Successes.FirstOrDefault(u => u.UserId == idUser && u.InquiryId == idInquiry);
if (updatingSuccess == null) if (updatingSuccess == null)
{ {
throw new ArgumentException("Impossible de trouver le succès", nameof(id)); throw new ArgumentException("Impossible de trouver le succès", nameof(idUser));
} }
/*foreach (var pptt in typeof(SuccessEntity).GetProperties().Where(p =>
foreach (var pptt in typeof(SuccessEntity).GetProperties().Where(p =>
p.CanWrite && p.Name != nameof(SuccessEntity.UserId) && p.Name != nameof(SuccessEntity.InquiryId))) p.CanWrite && p.Name != nameof(SuccessEntity.UserId) && p.Name != nameof(SuccessEntity.InquiryId)))
{ {
pptt.SetValue(updatingSuccess, pptt.GetValue(success)); pptt.SetValue(updatingSuccess, pptt.GetValue(success));
} }*/
updatingSuccess.IsFinished = success.IsFinished;
DbContext.SaveChangesAsync(); DbContext.SaveChangesAsync();
return updatingSuccess; return updatingSuccess;
} }
@ -101,8 +99,12 @@ public class SuccessDataService : ISuccessService<SuccessEntity>
InquiryId = inquiryId, InquiryId = inquiryId,
IsFinished = isFinished, IsFinished = isFinished,
}; };
DbContext.Successes.Add(newSuccessEntity); var success = DbContext.Successes.Where(s => s.UserId == userId && s.InquiryId == inquiryId);
DbContext.SaveChangesAsync(); if (success == null)
{
DbContext.Successes.Add(newSuccessEntity);
DbContext.SaveChangesAsync();
}
return newSuccessEntity; return newSuccessEntity;
} }
} }

@ -5,10 +5,10 @@ namespace Shared
public interface ISuccessService<TSuccess> public interface ISuccessService<TSuccess>
{ {
public IEnumerable<TSuccess> GetSuccesses(int page, int number, SuccessOrderCriteria orderCriteria); public IEnumerable<TSuccess> GetSuccesses(int page, int number, SuccessOrderCriteria orderCriteria);
public TSuccess GetSuccessByUserId(int id); public IEnumerable<TSuccess> GetSuccessesByUserId(int id);
public TSuccess GetSuccessByInquiryId(int id); public IEnumerable<TSuccess> GetSuccessesByInquiryId(int id);
public bool DeleteSuccess(int id); public bool DeleteSuccess(int idUser, int idInquiry);
public TSuccess UpdateSuccess(int id, TSuccess success); public TSuccess UpdateSuccess(int idUser, int idInquiry, TSuccess success);
public TSuccess CreateSuccess(int userId, int inquiryId, bool isFinished); public TSuccess CreateSuccess(int userId, int inquiryId, bool isFinished);
} }
} }

@ -519,13 +519,13 @@ using (var context = new UserDbContext(options))
{ {
Console.WriteLine("Succès trouvé !\n"); Console.WriteLine("Succès trouvé !\n");
Console.WriteLine("Veuillez saisir l'identifiant de l'utilisateur lié au succès :"); Console.WriteLine("Veuillez saisir l'identifiant de l'utilisateur lié au succès :");
var userId = Console.ReadLine(); var userId = int.Parse(Console.ReadLine());
Console.WriteLine("Veuillez saisir l'identifiant de l'enquête lié au succès :"); Console.WriteLine("Veuillez saisir l'identifiant de l'enquête lié au succès :");
var inquiryId = Console.ReadLine(); var inquiryId = int.Parse(Console.ReadLine());
Console.WriteLine("Veuillez saisir si l'enquête est terminée (0/1) :"); Console.WriteLine("Veuillez saisir si l'enquête est terminée (0/1) :");
var isFinished = Console.ReadLine(); var isFinished = Console.ReadLine();
var retour = successController.UpdateSuccess(id, var retour = successController.UpdateSuccess(userId, inquiryId,
new SuccessDTO(int.Parse(userId), int.Parse(inquiryId), bool.Parse(isFinished))); new SuccessDTO(userId, inquiryId, bool.Parse(isFinished)));
if (retour.GetType() == typeof(OkObjectResult)) if (retour.GetType() == typeof(OkObjectResult))
{ {
Console.WriteLine("Mise à jour effectué avec succès !"); Console.WriteLine("Mise à jour effectué avec succès !");
@ -605,8 +605,10 @@ using (var context = new UserDbContext(options))
void DeleteSuccess() void DeleteSuccess()
{ {
Console.WriteLine("Quel est l'identifiant de l'utilisateur lié au succès à supprimer ?"); Console.WriteLine("Quel est l'identifiant de l'utilisateur lié au succès à supprimer ?");
var id = int.Parse(Console.ReadLine()); var idUser = int.Parse(Console.ReadLine());
var res = successController.DeleteSuccess(id); Console.WriteLine("Quel est l'identifiant de l'enquête lié au succès à supprimer ?");
var idInquiry = int.Parse(Console.ReadLine());
var res = successController.DeleteSuccess(idUser,idInquiry);
if (res.GetType() == typeof(OkObjectResult)) if (res.GetType() == typeof(OkObjectResult))
{ {
Console.WriteLine("La suppression a été effectuée avec succès !"); Console.WriteLine("La suppression a été effectuée avec succès !");

Loading…
Cancel
Save