using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
///
/// Clinical user account management for hospital IT administrators.
///
[ApiController]
[Route("api/v1/users")]
[Produces("application/json")]
[Authorize]
public class UsersController : ControllerBase
{
private readonly IUserService _users;
public UsersController(IUserService users) => _users = users;
/// Lists all clinical user accounts.
[HttpGet]
[AuthorizePermission(ClinicalPermissions.UsersAdmin)]
[ProducesResponseType(typeof(ApiResponse>), StatusCodes.Status200OK)]
public async Task List()
{
var users = await _users.ListAsync();
return Ok(ApiResponse>.Ok(users));
}
/// Creates a new clinical user account.
[HttpPost]
[AuthorizePermission(ClinicalPermissions.UsersAdmin)]
[ProducesResponseType(typeof(ApiResponse), StatusCodes.Status201Created)]
[ProducesResponseType(typeof(ApiResponse