diff options
| author | Danail Dimitrov <danaildimitrov321@gmail.com> | 2021-02-25 22:49:00 +0200 |
|---|---|---|
| committer | Danail Dimitrov <danaildimitrov321@gmail.com> | 2021-02-25 22:49:00 +0200 |
| commit | 42f4506395d6b9e7593253856a21b2b536e18df5 (patch) | |
| tree | a6aaba71407593348878e170dbff5c52a311320c /src/Web/DevHive.Web/Controllers/RatingController.cs | |
| parent | a851adfac47a26cae83e9161d37902a219e5ebf3 (diff) | |
| download | DevHive-42f4506395d6b9e7593253856a21b2b536e18df5.tar DevHive-42f4506395d6b9e7593253856a21b2b536e18df5.tar.gz DevHive-42f4506395d6b9e7593253856a21b2b536e18df5.zip | |
Adding RatePost functionality
Diffstat (limited to 'src/Web/DevHive.Web/Controllers/RatingController.cs')
| -rw-r--r-- | src/Web/DevHive.Web/Controllers/RatingController.cs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/Web/DevHive.Web/Controllers/RatingController.cs b/src/Web/DevHive.Web/Controllers/RatingController.cs new file mode 100644 index 0000000..673aee1 --- /dev/null +++ b/src/Web/DevHive.Web/Controllers/RatingController.cs @@ -0,0 +1,42 @@ +using System; +using System.Threading.Tasks; +using AutoMapper; +using DevHive.Services.Interfaces; +using DevHive.Services.Models.Post.Rating; +using DevHive.Web.Models.Rating; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace DevHive.Web.Controllers +{ + [ApiController] + [Route("api/[controller]")] + public class RatingController + { + private readonly IRatingService _rateService; + private readonly IUserService _userService; + private readonly IMapper _mapper; + + public RatingController(IRatingService rateService, IUserService userService, IMapper mapper) + { + this._rateService = rateService; + this._userService = userService; + this._mapper = mapper; + } + + [HttpPost] + [Authorize(Roles = "Admin,User")] + public async Task<IActionResult> RatePost(Guid userId, [FromBody] CreateRatingWebModel createRatingWebModel, [FromHeader] string authorization) + { + CreateRatingServiceModel ratePostServiceModel = this._mapper.Map<CreateRatingServiceModel>(createRatingWebModel); + ratePostServiceModel.UserId = userId; + + Guid id = await this._rateService.RatePost(ratePostServiceModel); + + if (Guid.Empty == id) + return new BadRequestResult(); + + return new OkObjectResult(id); + } + } +} |
