aboutsummaryrefslogtreecommitdiff
path: root/src/Web/DevHive.Web/Controllers/RatingController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Web/DevHive.Web/Controllers/RatingController.cs')
-rw-r--r--src/Web/DevHive.Web/Controllers/RatingController.cs25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/Web/DevHive.Web/Controllers/RatingController.cs b/src/Web/DevHive.Web/Controllers/RatingController.cs
index 344acb2..5716b85 100644
--- a/src/Web/DevHive.Web/Controllers/RatingController.cs
+++ b/src/Web/DevHive.Web/Controllers/RatingController.cs
@@ -1,6 +1,7 @@
using System;
using System.Threading.Tasks;
using AutoMapper;
+using DevHive.Common.Jwt.Interfaces;
using DevHive.Services.Interfaces;
using DevHive.Services.Models.Post.Rating;
using DevHive.Web.Models.Rating;
@@ -17,18 +18,20 @@ namespace DevHive.Web.Controllers
private readonly IRatingService _rateService;
private readonly IUserService _userService;
private readonly IMapper _mapper;
+ private readonly IJwtService _jwtService;
- public RatingController(IRatingService rateService, IUserService userService, IMapper mapper)
+ public RatingController(IRatingService rateService, IUserService userService, IMapper mapper, IJwtService jwtService)
{
this._rateService = rateService;
this._userService = userService;
this._mapper = mapper;
+ this._jwtService = jwtService;
}
[HttpPost]
public async Task<IActionResult> RatePost(Guid userId, [FromBody] CreateRatingWebModel createRatingWebModel, [FromHeader] string authorization)
{
- if (!await this._rateService.ValidateJwtForCreating(userId, authorization))
+ if (!this._jwtService.ValidateToken(userId, authorization))
return new UnauthorizedResult();
CreateRatingServiceModel ratePostServiceModel = this._mapper.Map<CreateRatingServiceModel>(createRatingWebModel);
@@ -51,10 +54,20 @@ namespace DevHive.Web.Controllers
return new OkObjectResult(readPostRatingWebModel);
}
+ [HttpGet]
+ [Route("GetByUserAndPost")]
+ public async Task<IActionResult> GetRatingByUserAndPost(Guid userId, Guid postId)
+ {
+ ReadRatingServiceModel readRatingServiceModel = await this._rateService.GetRatingByPostAndUser(userId, postId);
+ ReadRatingWebModel readPostRatingWebModel = this._mapper.Map<ReadRatingWebModel>(readRatingServiceModel);
+
+ return new OkObjectResult(readPostRatingWebModel);
+ }
+
[HttpPut]
public async Task<IActionResult> UpdateRating(Guid userId, [FromBody] UpdateRatingWebModel updateRatingWebModel, [FromHeader] string authorization)
{
- if (!await this._rateService.ValidateJwtForRating(updateRatingWebModel.Id, authorization))
+ if (!this._jwtService.ValidateToken(userId, authorization))
return new UnauthorizedResult();
UpdateRatingServiceModel updateRatingServiceModel =
@@ -73,12 +86,12 @@ namespace DevHive.Web.Controllers
}
[HttpDelete]
- public async Task<IActionResult> DeleteTating(Guid id, [FromHeader] string authorization)
+ public async Task<IActionResult> DeleteTating(Guid userId, Guid ratingId, [FromHeader] string authorization)
{
- if (!await this._rateService.ValidateJwtForRating(id, authorization))
+ if (!this._jwtService.ValidateToken(userId, authorization))
return new UnauthorizedResult();
- return await this._rateService.DeleteRating(id) ?
+ return await this._rateService.DeleteRating(ratingId) ?
new OkResult() :
new BadRequestObjectResult("Could not delete Rating");
}