Exemple #1
0
        public async Task <IActionResult> GetPost([FromQuery] GetPostRequest request)
        {
            var response = await mediator.Send(request);

            logger.LogResponse($"User #{HttpContext.GetCurrentUserId()} displayed post #{request.PostId}", response.Error);

            return(response.IsSucceeded ? (IActionResult)Ok(response) : BadRequest(response));
        }
        public async Task <IActionResult> GetPostById([FromBody] GetPostRequest request)
        {
            var callerId = GetCallerId();

            var result = await _postRepository.GetPostById(request.PostId, callerId);

            return(new OkObjectResult(new
            {
                Message = "Whuhu",
                result
            }));
        }
Exemple #3
0
        public override async Task <Post> GetPublishedPost(GetPostRequest request, ServerCallContext context)
        {
            var postEntity = await _blogDbContext.Posts
                             .FirstOrDefaultAsync(post => post.Slug == request.Slug &&
                                                  post.IsActive &&
                                                  !post.IsDeleted &&
                                                  post.Status ==
                                                  PostStatus.Published);

            var categoryEntity =
                await _blogDbContext.Categories.FirstOrDefaultAsync(category => category.Id == postEntity.CategoryId);

            return(_postMapper.Map(postEntity, categoryEntity));
        }
Exemple #4
0
        public async Task <GetPostResponse> GetPostAsync(GetPostRequest request)
        {
            var response = new GetPostResponse();

            var entity = await _postRepository.GetPostByUrlAsync(request.Url);

            if (entity == null)
            {
                response.StatusCode = (int)HttpStatusCode.NotFound;
                return(response);
            }

            response.Post = _postMapper.ToModel(entity);
            return(response);
        }
Exemple #5
0
        public async Task <IActionResult> Get([FromRoute] GetPostRequest request)
        {
            //
            // TODO: Validate the request
            //
            try
            {
                var response = await _postsService.GetPostAsync(request).ConfigureAwait(false);

                return(Ok(response));
            }
            catch (Exception exception)
            {
                _logger.LogError(exception, "Cannot retrieve the post");
            }

            return(StatusCode((int)HttpStatusCode.InternalServerError));
        }
        public async Task <IActionResult> GetPost([FromQuery] GetPostRequest contract, CancellationToken cancellationToken)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ResponseMessage {
                    Message = "One or more validation errors occurred."
                }));
            }

            PostDTO post = await _postService.Get(contract.Id, cancellationToken);

            if (post == null)
            {
                return(BadRequest(new ResponseMessage {
                    Message = "Post not found."
                }));
            }
            return(Ok(_mapper.Map <GetPostResponse>(post)));
        }
        public override Task <GetPostResponse> Get(GetPostRequest request, ServerCallContext context)
        {
            var post = _postService.Get(request.Id);

            if (post is null)
            {
                return(Task.FromResult <GetPostResponse>(null));
            }
            var response = new GetPostResponse
            {
                Post = new PostModel
                {
                    Id   = post.Id, CreatedAt = new DateTimeOffset(post.CreatedAt).ToUnixTimeSeconds(),
                    Name = post.Name
                }
            };

            return(Task.FromResult(response));
        }
Exemple #8
0
        public async Task <GetPostResponse> GetPostAsync(GetPostRequest request)
        {
            _logger.LogInformation($"Get post for {request.PostId}");

            var httpRequest  = new HttpRequestMessage(HttpMethod.Get, $"/posts/{request.PostId}");
            var httpResponse = await _httpClient.SendAsync(httpRequest).ConfigureAwait(false);

            if (!httpResponse.IsSuccessStatusCode)
            {
                _logger.LogError($"Cannot get the post :{request.PostId}");
                throw new Exception(httpResponse.ReasonPhrase);
            }

            _logger.LogInformation("Retrieved the post");
            var post = JsonConvert.DeserializeObject <Post>(await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false));

            return(new GetPostResponse
            {
                Post = post
            });
        }