using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using vendorApproverBackend.Data; using vendorApproverBackend.Services; using vendorApproverBackend.Enums; using vendorApproverBackend.Entities; namespace vendorApproverBackend.Controllers { [ApiController] [Route("api/[controller]")] [Authorize(Roles = "ADMIN,EMPLOYEE,VENDOR,FINANCIAL,MANAGER,RENWE_APPROVER")] public class EvaluationController : ControllerBase { private readonly EvaluationService _service; public EvaluationController(EvaluationService service) => _service = service; [HttpPost("request-renew/{requestId}")] public async Task Add(long requestId, [FromBody] EvaluationData data) => Ok(await _service.Add(requestId, data)); [HttpPut("{id}")] public async Task Update(long id, [FromBody] EvaluationData data) => Ok(await _service.Update(id, data)); [HttpGet("{id}")] public async Task GetById(long id) => Ok(await _service.GetById(id)); [HttpDelete("{id}")] public async Task Delete(long id) { await _service.Delete(id); return NoContent(); } [HttpPatch("{id}/status")] public async Task UpdateStatus(long id, [FromQuery] EvaluationStatusEnum status) { await _service.UpdateStatus(id, status); return Ok(); } [HttpGet] public async Task GetAll([FromQuery] int page = 0, [FromQuery] int size = 5) => Ok(await _service.GetAll(page, size)); } }