Exemplo n.º 1
0
        public async Task <ActionResult <PostLarge> > DeletePost(int postId)
        {
            var userGroup = User.FindFirst(ClaimTypes.Role)?.Value;

            if (userGroup == "1")
            {
                var item = await _repo.GetPost(postId);

                if (item == null)
                {
                    return(NotFound());
                }
            }
            else
            {
                var userId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
                if (!int.TryParse(userId, out int uid))
                {
                    return(BadRequest(new { error = "Unknow user ID." }));
                }
                var item = await _repo.GetPost(postId);

                if (item == null)
                {
                    return(NotFound());
                }
                if (item.UserId != uid)
                {
                    return(Forbid());
                }
            }
            return(PostLarge.FromPost(await _repo.DeletePost(postId), _imageServer));
        }
Exemplo n.º 2
0
        public async Task <ActionResult <PostLarge> > GetPost(int postId)
        {
            var item = await _repo.GetPost(postId);

            if (item == null)
            {
                return(NotFound());
            }
            return(PostLarge.FromPost(await _repo.GetPost(postId), _imageServer));
        }
Exemplo n.º 3
0
        public async Task <ActionResult <PostLarge> > PostNew([FromBody] PostForUpload post)
        {
            var userId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            if (!int.TryParse(userId, out int uid))
            {
                return(BadRequest(new { error = "Unknow user ID." }));
            }
            post.UserId = uid;
            return(PostLarge.FromPost(await _repo.SavePost(post), _imageServer));
        }
Exemplo n.º 4
0
        public async Task <ActionResult <PostLarge> > EditPost(int postId, [FromBody] PostForUpload post)
        {
            var userId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            if (!int.TryParse(userId, out int uid))
            {
                return(BadRequest(new { error = "Unknow user ID." }));
            }
            var item = await _repo.GetPost(postId);

            if (item == null)
            {
                return(NotFound());
            }
            if (item.UserId != uid)
            {
                return(Forbid());
            }
            return(PostLarge.FromPost(await _repo.UpdatePost(postId, post), _imageServer));
        }