using Microsoft.AspNetCore.Mvc; using CarParkValidationAPI.Authorization; using CarParkValidationAPI.Entities; using CarParkValidationAPI.Models; using CarParkValidationAPI.Interface; using System.Threading.Tasks; namespace CarParkValidationAPI.Controllers { /* [Authorize] */ [ApiController] [Route("api/v1/[controller]")] public class ValidationPointController : ControllerBase { private IValidationPoint _validationPoint; public ValidationPointController(IValidationPoint validationPoint) { _validationPoint = validationPoint; } [HttpPost] public async Task ValidationPoint([FromBody] ValidationPointDto model) { var currentUser = (User)HttpContext.Items["User"]; if (null == currentUser) return Unauthorized(new { message = "Unauthorized" }); _validationPoint.SetCurrentUser(currentUser.Username); var response = await _validationPoint.SaveValidationPointAsync(model); return Ok(response); } [HttpGet] public async Task ValidationPoint(bool onlyActive=true) { var retval = await _validationPoint.LoadValidationPointAsync(onlyActive); return Ok(retval); } [HttpGet("{id:int}")] public async Task ValidationPoint(int id) { /* // only admins can access other user records var currentUser = (User)HttpContext.Items["User"]; if (id != currentUser.Id && currentUser.Role != Role.Admin) return Unauthorized(new { message = "Unauthorized" }); */ var retval = await _validationPoint.LoadValidationPointByIdAsync(id); return Ok(retval); } [HttpDelete("{id:int}")] public async Task DeleteConcessionType(int id) { // only admins can access other user records var currentUser = (User)HttpContext.Items["User"]; if (null == currentUser) return Unauthorized(new { message = "Unauthorized" }); _validationPoint.SetCurrentUser(currentUser.Username); var retval = await _validationPoint.DeleteValidationPointAsync(id); return Ok(retval); } } }