public async Task <IActionResult> SearchInFeed(string feedId, [FromBody] SearchArticlesInFeedQuery searchArticlesInFeedQuery, CancellationToken cancellationToken) { var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; searchArticlesInFeedQuery.UserId = userId; searchArticlesInFeedQuery.FeedId = feedId; var result = await _mediator.Send(searchArticlesInFeedQuery, cancellationToken); return(new OkObjectResult(result)); }
public async Task <SearchQueryResult <ArticleQueryResult> > Handle(SearchArticlesInFeedQuery request, CancellationToken cancellationToken) { var feed = await _feedService.Get(request.FeedId, cancellationToken); if (feed.UserId != request.UserId) { _logger.LogError($"the user {request.UserId} doesn't have the right to access to the feed {request.FeedId}"); throw new NewsAggregatorUnauthorizedException(string.Format(Global.CannotAccessToTheFeed, request.FeedId)); } return(await _articleQueryRepository.SearchInFeed(new SearchArticlesInFeedParameter { Count = request.Count, Direction = request.Direction, FeedId = request.FeedId, Order = request.Order, StartIndex = request.StartIndex, UserId = request.UserId }, cancellationToken)); }