@ -1,9 +1,12 @@
using DbContextLib ;
using DbContextLib ;
using Entities.SQLudeoDB ;
using Microsoft.AspNetCore.Authorization ;
using Microsoft.AspNetCore.Authorization ;
using Microsoft.AspNetCore.Http ;
using Microsoft.AspNetCore.Http ;
using Microsoft.AspNetCore.Mvc ;
using Microsoft.AspNetCore.Mvc ;
using Model ;
using Model.Business ;
using Model.Business ;
using Model.DTO ;
using Model.DTO ;
using Model.Mappers ;
using Services ;
using Services ;
namespace API.Controllers
namespace API.Controllers
@ -13,36 +16,36 @@ namespace API.Controllers
[ApiController]
[ApiController]
public class UserController : Controller
public class UserController : Controller
{
{
private IDataService _userD ataService;
private IDataService < UserDTO ? > _d ataService;
private readonly ILogger < UserController > _logger ;
private readonly ILogger < UserController > _logger ;
public UserController ( IDataService userD ataService, ILogger < UserController > logger )
public UserController ( IDataService < UserDTO ? > d ataService, ILogger < UserController > logger )
{
{
_ userDataService = userD ataService;
_ dataService = d ataService;
_logger = logger ;
_logger = logger ;
}
}
[HttpGet("users/{page}/{number}")]
[HttpGet("users/{page}/{number}")]
public IActionResult GetUsers ( int page , int number )
public async Task < IActionResult > GetUsers ( int page , int number )
{
{
var nbUser = _userData Service. GetUsers ( page , number ) . Count ( ) ;
var nbUser = ( await _dataService . User Service. GetUsers ( page , number ) ) . ToList ( ) . Count ( ) ;
if ( nbUser = = 0 )
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 ) ;
_logger . LogInformation ( "[INFORMATION] {nb} Utilisateur(s) trouvé(s)" , nbUser ) ;
return Ok ( _ userDataService. GetUsers ( page , number ) ) ;
return Ok ( _ dataService. UserService . GetItems < UserEntity > ( page , number ) ) ;
}
}
[HttpGet("user/id/{id}")]
[HttpGet("user/id/{id}")]
public IActionResult GetUserById ( int id )
public async Task < IActionResult > GetUserById ( int id )
{
{
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 ( _ userDataService. GetUserById ( id ) ) ;
return Ok ( _ dataService. UserService . GetItems < UserEntity > ( 1 , 1 , UserProperty . Id . ToString ( ) , 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 ) ;
@ -51,12 +54,12 @@ namespace API.Controllers
}
}
[HttpGet("user/username/{username}")]
[HttpGet("user/username/{username}")]
public IActionResult GetUserByUsername ( string username )
public async Task < IActionResult > GetUserByUsername ( string username )
{
{
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 ( _ userDataService. GetUserByUsername ( username ) ) ;
return Ok ( _ dataService. UserService . GetItems < UserEntity > ( 1 , 1 , UserProperty . Username . ToString ( ) , 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 ) ;
@ -66,13 +69,13 @@ namespace API.Controllers
}
}
[HttpDelete]
[HttpDelete]
public IActionResult DeleteUser ( int id )
public async Task < IActionResult > DeleteUser ( int id )
{
{
var success = _userDataService . DeleteUser ( id ) ;
var success = await _dataService . UserService . DeleteItem < UserEntity > ( 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 ( _ userData Service. DeleteUser ( id ) ) ;
return Ok ( _ dataService. User Service. 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 ) ;
@ -82,19 +85,19 @@ namespace API.Controllers
}
}
[HttpPost]
[HttpPost]
public IActionResult CreateUser ( [ FromBody ] UserDTO dto )
public async Task < 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 ) ;
_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 ) , _ userDataService. CreateUser ( dto . Username , dto . Password , dto . Email , dto . IsAdmin ) ) ;
return Created ( nameof ( GetUsers ) , _ dataService. UserService . AddItem ( dto . FromDTOToModel ( ) . FromModelToEntity ( ) ) ) ;
}
}
[HttpPut]
[HttpPut]
public IActionResult UpdateUser ( int id , [ FromBody ] UserDTO userDTO )
public async Task < IActionResult > UpdateUser ( int id , [ FromBody ] UserDTO userDTO )
{
{
if ( id ! = userDTO . Id )
if ( id ! = userDTO . Id )
{
{
@ -108,8 +111,8 @@ namespace API.Controllers
}
}
if ( userDTO ! = null )
if ( userDTO ! = null )
{
{
_logger . LogInformation ( "[INFORMATION] La mise à jour de l'util s iateur avec l'id {id} a été effectuée", id ) ;
_logger . LogInformation ( "[INFORMATION] La mise à jour de l'util is ateur avec l'id {id} a été effectuée", id ) ;
return Ok ( _ userDataService. UpdateUser ( id , userDTO ) ) ;
return Ok ( _ dataService. UserService . UpdateItem < UserEntity , UserDTO > ( 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 ( ) ;