@ -5,45 +5,53 @@ using DTO;
using DTO.Factory ;
using DTO.Factory ;
using Microsoft.AspNetCore.Http ;
using Microsoft.AspNetCore.Http ;
using Microsoft.AspNetCore.Mvc ;
using Microsoft.AspNetCore.Mvc ;
using System.Net ;
namespace ApiLeapHit.Controllers
namespace ApiLeapHit.Controllers
{
{
[Route("api/[controller] ")]
[Route("api/[controller] ")]
[ApiController]
[ApiController]
public class Chat Controller : Controller
public class Chat s Controller : Controller
{
{
private readonly DbDataManager _dataManager ;
private readonly DbDataManager _dataManager ;
private readonly ILogger < Chat Controller> _logger ;
private readonly ILogger < Chat s Controller> _logger ;
public Chat Controller( DbDataManager dataManager , ILogger < Chat Controller> logger )
public Chat s Controller( DbDataManager dataManager , ILogger < Chat s Controller> logger )
{
{
_dataManager = dataManager ;
_dataManager = dataManager ;
_logger = logger ;
_logger = logger ;
}
}
[HttpPost]
[HttpPost]
public async Task < ActionResult> AddChat ( [ FromBody ] DTOChat dtoChat )
public async Task < I ActionResult> AddChat ( [ FromBody ] DTOChat dtoChat )
{
{
try
try
{
{
var player1 = await _dataManager . GetPlayer ( dtoChat . PlayerId1 ) ;
var player1 = await _dataManager . GetPlayer ( dtoChat . PlayerId1 ) ;
var player2 = await _dataManager . GetPlayer ( dtoChat . PlayerId2 ) ;
var player2 = await _dataManager . GetPlayer ( dtoChat . PlayerId2 ) ;
if ( player1 = = null | | player2 = = null )
{
var message = "Les ids de player ne sont pas valides." ;
_logger . LogInformation ( message ) ;
return BadRequest ( message ) ;
}
await _dataManager . AddChat ( dtoChat . ToChat ( ) ) ;
await _dataManager . AddChat ( dtoChat . ToChat ( ) ) ;
var success_message = $"Le chat entre {player1.name} et {player2.name} a été ajouté avec succès." ;
var success_message = $"Le chat entre {player1.name} et {player2.name} a été ajouté avec succès." ;
_logger . LogInformation ( success_message ) ;
_logger . LogInformation ( success_message ) ;
return Ok ( new ApiResponse < object > ( success_message ) ) ;
return Ok ( success_message ) ;
}
}
catch ( Exception ex )
catch ( Exception ex )
{
{
var error_message = $"Une erreur est survenue lors de l'ajout du chat : {ex .Message} ";
var error_message = $"Une erreur est survenue lors de l'ajout du chat .";
_logger . LogError ( ex , error_message ) ;
_logger . LogError ( ex , error_message ) ;
return StatusCode ( 500 , new ApiResponse < object > ( error_message ) ) ;
return StatusCode ( ( int ) HttpStatusCode . InternalServerError , error_message ) ;
}
}
}
}
[HttpGet]
[HttpGet]
public async Task < ActionResult < IEnumerable < DTOChat > > > GetChats ( )
public async Task < ActionResult < IEnumerable < DTOChat > > > GetChats ( )
{
{
@ -53,35 +61,26 @@ namespace ApiLeapHit.Controllers
if ( chats = = null )
if ( chats = = null )
{
{
var message = "Aucun chat n'a été trouvé." ;
var message = "Aucun chat n'a été trouvé." ;
_logger . Log Warning ( message ) ;
_logger . Log Information ( message ) ;
return NotFound ( new ApiResponse < object > ( message ) ) ;
return NotFound ( message ) ;
}
}
var dtoChats = new List < DTOChat > ( ) ;
var dtoChats = chats . Select ( c = > c . ToDto ( ) ) ;
foreach ( var chat in chats )
{
//var player1 = await _dataManager.GetPlayer(chat.player1);
//var player2 = await _dataManager.GetPlayer(chat.player2);
var dtoChat = chat . ToDto ( ) ;
dtoChats . Add ( dtoChat ) ;
var success_message = $"La récupération des chats a réussi. Nombre de chats : {dtoChats.Count()}" ;
}
var success_message = $"La récupération des chats a réussi. Nombre de chats : {dtoChats.Count}" ;
_logger . LogInformation ( success_message ) ;
_logger . LogInformation ( success_message ) ;
return Ok ( new ApiResponse < List < DTOChat > > ( success_message , dtoChats ) ) ;
return Ok ( dtoChats ) ;
}
}
catch ( Exception ex )
catch ( Exception ex )
{
{
var error_message = $"Une erreur est survenue lors de la récupération des chats : {ex .Message} ";
var error_message = $"Une erreur est survenue lors de la récupération des chats .";
_logger . LogError ( ex , error_message ) ;
_logger . LogError ( ex , error_message ) ;
return StatusCode ( 500 , new ApiResponse < object > ( error_message ) ) ;
return StatusCode ( ( int ) HttpStatusCode . InternalServerError , error_message ) ;
}
}
}
}
[HttpGet("{id}")]
[HttpGet("{id}")]
public async Task < ActionResult < IEnumerable< DTOChat> > > GetChatById ( int id )
public async Task < ActionResult < DTOChat> > GetChatById ( int id )
{
{
try
try
{
{
@ -89,90 +88,77 @@ namespace ApiLeapHit.Controllers
if ( chat = = null )
if ( chat = = null )
{
{
var message = "Aucun chat n'a été trouvé." ;
var message = "Aucun chat n'a été trouvé." ;
_logger . Log Warning ( message ) ;
_logger . Log Information ( message ) ;
return NotFound ( new ApiResponse < object > ( message ) ) ;
return NotFound ( message ) ;
}
}
//var player1 = await _dataManager.GetPlayer(chat.player1);
//var player2 = await _dataManager.GetPlayer(chat.player2);
var dtoChat = chat . ToDto ( ) ;
var dtoChat = chat . ToDto ( ) ;
var success_message = $"La récupération du chat a réussi pour le chat {id}." ;
var success_message = $"La récupération du chat a réussi pour le chat {id}." ;
_logger . LogInformation ( success_message ) ;
_logger . LogInformation ( success_message ) ;
return Ok ( new ApiResponse < DTOChat > ( success_message , dtoChat ) ) ;
return Ok ( dtoChat ) ;
}
}
catch ( Exception ex )
catch ( Exception ex )
{
{
var error_message = $"Une erreur est survenue lors de la récupération du chat {id} : {ex .Message} ";
var error_message = $"Une erreur est survenue lors de la récupération du chat {id} .";
_logger . LogError ( ex , error_message ) ;
_logger . LogError ( ex , error_message ) ;
return StatusCode ( 500 , new ApiResponse < object > ( error_message ) ) ;
return StatusCode ( ( int ) HttpStatusCode . InternalServerError , error_message ) ;
}
}
}
}
[HttpGet("byPlayer/{id}")]
public async Task < ActionResult < IEnumerable < DTOChat > > > GetChatsByIdPlayer ( int id )
[HttpGet("Player/{id}")]
public async Task < ActionResult < List < DTOChat > > > GetChatsByIdPlayer ( int id )
{
{
try
try
{
{
var chats = await _dataManager . GetChatsByIdPlayer ( id ) ;
var chats = await _dataManager . GetChatsByIdPlayer ( id ) ;
if ( chats = = null | | chats . Count ( ) = = 0 )
if ( chats = = null | | ! chats . Any ( ) )
{
{
var message = "Aucun chat n'a été trouvé pour l'id : {id}." ;
var message = $"Aucun chat n'a été trouvé pour l'id : {id}." ;
_logger . LogWarning ( message ) ;
_logger . LogInformation ( message ) ;
return NotFound ( new ApiResponse < object > ( message ) ) ;
return NotFound ( new ApiResponse ( message ) ) ;
}
var dtoChats = new List < DTOChat > ( ) ;
foreach ( var chat in chats )
{
dtoChats . Add ( chat . ToDto ( ) ) ;
}
}
var dtoChats = chats . Select ( c = > c . ToDto ( ) ) . ToList ( ) ;
var success_message = $"La récupération des chats a réussi pour l'id : {id}. Nombre de chats : {dtoChats.Count}" ;
var success_message = $"La récupération des chats a réussi pour l'id : {id}. Nombre de chats : {dtoChats.Count}" ;
_logger . LogInformation ( success_message ) ;
_logger . LogInformation ( success_message ) ;
return Ok ( new ApiResponse < List < DTOChat > > ( success_message , dtoChats ) ) ;
return Ok ( new ApiResponse < List < DTOChat > > ( success_message , dtoChats ) ) ;
}
}
catch ( Exception ex )
catch ( Exception ex )
{
{
var error_message = $"Une erreur est survenue lors de la récupération des chats de l'utilisateur {id} : {ex .Message} ";
var error_message = $"Une erreur est survenue lors de la récupération des chats de l'utilisateur {id} .";
_logger . LogError ( ex , error_message ) ;
_logger . LogError ( ex , error_message ) ;
return StatusCode ( 500 , new ApiResponse < object > ( error_message ) ) ;
return StatusCode ( ( int ) HttpStatusCode . InternalServerError , new ApiResponse ( error_message ) ) ;
}
}
}
}
[HttpGet(" p layers/{idPlayer1}/{idPlayer2}")]
[HttpGet(" P layers/{idPlayer1}/{idPlayer2}")]
public async Task < ActionResult < IEnumerable < DTOChat > > > GetChatsByIdPlayers ( int idPlayer1 , int idPlayer2 )
public async Task < ActionResult < List < DTOChat > > > GetChatsByIdPlayers ( int idPlayer1 , int idPlayer2 )
{
{
try
try
{
{
var chats = await _dataManager . GetChatsByIdPlayers ( idPlayer1 , idPlayer2 ) ;
var chats = await _dataManager . GetChatsByIdPlayers ( idPlayer1 , idPlayer2 ) ;
if ( chats = = null | | chats . Count ( ) = = 0 )
if ( chats = = null | | ! chats . Any ( ) )
{
{
var message = $"Aucun chat n'a été trouvé pour les joueurs {idPlayer1} et {idPlayer2}." ;
var message = $"Aucun chat n'a été trouvé pour les joueurs {idPlayer1} et {idPlayer2}." ;
_logger . LogWarning ( message ) ;
_logger . LogInformation ( message ) ;
return NotFound ( new ApiResponse < object > ( message ) ) ;
return NotFound ( new ApiResponse ( message ) ) ;
}
var dtoChats = new List < DTOChat > ( ) ;
foreach ( var chat in chats )
{
//var player1 = await _dataManager.GetPlayer(chat.player1);
//var player2 = await _dataManager.GetPlayer(chat.player2);
dtoChats . Add ( chat . ToDto ( ) ) ;
}
}
var dtoChats = chats . Select ( c = > c . ToDto ( ) ) . ToList ( ) ;
var success_message = $"La récupération des chats a réussi pour les joueurs {idPlayer1} et {idPlayer2}. Nombre de chats : {dtoChats.Count}" ;
var success_message = $"La récupération des chats a réussi pour les joueurs {idPlayer1} et {idPlayer2}. Nombre de chats : {dtoChats.Count}" ;
_logger . LogInformation ( success_message ) ;
_logger . LogInformation ( success_message ) ;
return Ok ( new ApiResponse < List < DTOChat > > ( success_message , dtoChats ) ) ;
return Ok ( new ApiResponse < List < DTOChat > > ( success_message , dtoChats ) ) ;
}
}
catch ( Exception ex )
catch ( Exception ex )
{
{
var error_message = $"Une erreur est survenue lors de la récupération des chats pour les joueurs {idPlayer1} et {idPlayer2} : {ex .Message} ";
var error_message = $"Une erreur est survenue lors de la récupération des chats pour les joueurs {idPlayer1} et {idPlayer2} .";
_logger . LogError ( ex , error_message ) ;
_logger . LogError ( ex , error_message ) ;
return StatusCode ( 500 , new ApiResponse < object > ( error_message ) ) ;
return StatusCode ( ( int ) HttpStatusCode . InternalServerError , new ApiResponse ( error_message ) ) ;
}
}
}
}
[HttpDelete("{id}")]
[HttpDelete("{id}")]
@ -185,18 +171,18 @@ namespace ApiLeapHit.Controllers
{
{
var success_message = $"Le chat avec l'identifiant {id} a été supprimé avec succès." ;
var success_message = $"Le chat avec l'identifiant {id} a été supprimé avec succès." ;
_logger . LogInformation ( success_message ) ;
_logger . LogInformation ( success_message ) ;
return Ok ( new ApiResponse <object > (success_message ) ) ;
return Ok ( new ApiResponse (success_message ) ) ;
}
}
var warning_message = $"Le chat avec l'identifiant {id} n'a pas été trouvé." ;
var warning_message = $"Le chat avec l'identifiant {id} n'a pas été trouvé." ;
_logger . Log Warning ( warning_message ) ;
_logger . Log Information ( warning_message ) ;
return NotFound ( new ApiResponse <object > (warning_message ) ) ;
return NotFound ( new ApiResponse (warning_message ) ) ;
}
}
catch ( Exception ex )
catch ( Exception ex )
{
{
var error_message = $"Une erreur est survenue lors de la suppression du chat : {ex.Message}" ;
var error_message = $"Une erreur est survenue lors de la suppression du chat : {ex.Message}" ;
_logger . LogError ( ex , error_message ) ;
_logger . LogError ( ex , error_message ) ;
return StatusCode ( 500 , new ApiResponse < object > ( error_message ) ) ;
return StatusCode ( ( int ) HttpStatusCode . InternalServerError , new ApiResponse ( error_message ) ) ;
}
}
}
}
}
}