示例#1
0
        public async Task <object> GetUserById([FromBody] UserIdToSearchWith userIdObj)
        {
            var id   = userIdObj.Id;
            var user = await _userService.GetUserById(id);

            return(user);
        }
示例#2
0
        public async Task <object> GetGlobals(UserIdToSearchWith userIdObj, UserIdToSearchWith authUserId)
        {
            var userLikes = await _context.Likes
                            .Where(like => like.UserId == userIdObj.Id)
                            .Select(like => like.PostId)
                            .ToListAsync();

            var userComments = await _context.Comments
                               .Where(comment => comment.UserId == userIdObj.Id)
                               .Select(comment => comment.PostId)
                               .ToListAsync();

            var posts = await _context.Posts
                        .Where(post => !post.hidden)
                        .Include(post => post.User)
                        .ThenInclude(user => user.Posts)
                        .Include(post => post.Comments).ThenInclude(comment => comment.User).ThenInclude(user => user.Posts)
                        // .Include(post => post.User)
                        // .ThenInclude(user => user.FollowedBy).Select(follow => )
                        .Include(post => post.Likes)
                        .Select(post => new
            {
                Id        = post.Id,
                content   = post.content,
                imageURL  = post.imageURL,
                edited    = post.edited,
                hidden    = post.hidden,
                createdAt = post.createdAt,
                UserId    = post.UserId,
                User      = new
                {
                    Id               = post.User.Id,
                    name             = post.User.name,
                    email            = post.User.email,
                    username         = post.User.username,
                    avatarBackground = post.User.avatarBackground,
                    createdAt        = post.User.createdAt,
                    postCount        = post.User.Posts.Count(),
                    // followData = FormatFollowData(post.User.FollowedBy, authUserId)
                },
                likeData = new {
                    quanity     = post.Likes.Count(),
                    likedByUser = CheckUserPostLikeArray(userLikes, post.Id),
                    likeId      = GetLikeId(post.Likes, post.Id)
                },
                commentData = new
                {
                    quanity         = post.Comments.Count(),
                    commentedByUser = CheckUserPostCommentArray(userComments, post.Id),
                    comments        = FormatCommentCollection(post.Comments)
                }
            }
                                )
                        .OrderByDescending(p => p.Id)
                        .ToListAsync();

            return(posts);
        }
示例#3
0
        public async Task <object> GetPostsForUser([FromBody] UserIdToSearchWith userIdObj)
        {
            var posts = await _postService.GetPostsForUser(userIdObj);

            return(Ok(posts));
        }
示例#4
0
        public async Task <object> GetPosts([FromBody] UserIdToSearchWith userIdObj, UserIdToSearchWith authUserId)
        {
            var posts = await _postService.GetGlobals(userIdObj, authUserId);

            return(Ok(posts));
        }