@ -2,6 +2,7 @@
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.Business ;
using Model.DTO ;
using Model.DTO ;
using Services ;
using Services ;
@ -22,38 +23,78 @@ namespace API.Controllers
[HttpGet("users/{page}/{number}")]
[HttpGet("users/{page}/{number}")]
public IActionResult GetUsers ( int page , int number )
public IActionResult GetUsers ( int page , int number )
{
{
var nbUser = _userDataService . GetUsers ( page , number ) . Count ( ) ;
if ( nbUser = = 0 )
{
return StatusCode ( 204 ) ;
}
return Ok ( _userDataService . GetUsers ( page , number ) ) ;
return Ok ( _userDataService . GetUsers ( page , number ) ) ;
}
}
[HttpGet("user/id/{id}")]
[HttpGet("user/id/{id}")]
public IActionResult GetUserById ( int id )
public IActionResult GetUserById ( int id )
{
{
return Ok ( _userDataService . GetUserById ( id ) ) ;
try
{
return Ok ( _userDataService . GetUserById ( id ) ) ;
} catch ( ArgumentException ex )
{
return NotFound ( ) ;
}
}
}
[HttpGet("user/username/{username}")]
[HttpGet("user/username/{username}")]
public IActionResult GetUserByUsername ( string username )
public IActionResult GetUserByUsername ( string username )
{
{
return Ok ( _userDataService . GetUserByUsername ( username ) ) ;
try
{
return Ok ( _userDataService . GetUserByUsername ( username ) ) ;
} catch ( ArgumentException ex )
{
return NotFound ( ) ;
}
}
}
[HttpDelete]
[HttpDelete]
public IActionResult DeleteUser ( int id )
public IActionResult DeleteUser ( int id )
{
{
return Ok ( _userDataService . DeleteUser ( id ) ) ;
var sucess = _userDataService . DeleteUser ( id ) ;
if ( sucess )
{
return Ok ( _userDataService . DeleteUser ( id ) ) ;
} else
{
return NotFound ( ) ;
}
}
}
[HttpPost]
[HttpPost]
public IActionResult UpdateUser ( int id , UserDTO user )
public IActionResult UpdateUser ( string username , string password , string email , bool isAdmin )
{
{
return Ok ( _userDataService . UpdateUser ( id , user ) ) ;
// return Ok(_userDataService.CreateUser(username, password, email, isAdmin));
return CreatedAtAction ( nameof ( GetUsers ) , _userDataService . CreateUser ( username , password , email , isAdmin ) ) ;
}
}
[HttpPut]
[HttpPut]
public IActionResult CreateUser ( string username , string password , string email , bool isAdmin )
public IActionResult CreateUser ( int id , [ FromBody ] UserDTO userDTO )
{
{
// return Ok(_userDataService.CreateUser(username, password, email, isAdmin));
if ( id ! = userDTO . Id )
return CreatedAtAction ( nameof ( GetUsers ) , _userDataService . CreateUser ( username , password , email , isAdmin ) ) ;
{
return BadRequest ( ) ;
}
if ( ! ModelState . IsValid )
{
return BadRequest ( ) ;
}
if ( userDTO ! = null )
{
return Ok ( _userDataService . UpdateUser ( id , userDTO ) ) ;
}
return NotFound ( ) ;
}
}
}
}
}
}