using System; using System.Threading.Tasks; using HN.Application; using HN.Domain; using MediatR; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace Api.Controllers { [ApiController] [Route("api/[controller]")] public sealed class CommentsController : ControllerBase { private readonly IMediator _bus; public CommentsController(IMediator bus) { _bus = bus; } /// /// Upvote un commentaire particulier. /// /// /// [HttpPut("{id}/upvote")] [ProducesResponseType(StatusCodes.Status204NoContent)] public async Task Upvote(Guid id) { await _bus.Send(new VoteForCommentCommand(id, VoteType.Up)); return NoContent(); } /// /// Downvote un commentaire particulier. /// /// /// [HttpPut("{id}/downvote")] [ProducesResponseType(StatusCodes.Status204NoContent)] public async Task Downvote(Guid id) { await _bus.Send(new VoteForCommentCommand(id, VoteType.Down)); return NoContent(); } } }