diff options
Diffstat (limited to 'Backend/Api')
| -rw-r--r-- | Backend/Api/Api/Controllers/UserController.cs | 14 | ||||
| -rw-r--r-- | Backend/Api/Api/Interfaces/IPostService.cs | 1 | ||||
| -rw-r--r-- | Backend/Api/Api/Models/User.cs | 1 | ||||
| -rw-r--r-- | Backend/Api/Api/Services/PostService.cs | 13 | ||||
| -rw-r--r-- | Backend/Api/Api/Services/UserService.cs | 6 | 
5 files changed, 34 insertions, 1 deletions
diff --git a/Backend/Api/Api/Controllers/UserController.cs b/Backend/Api/Api/Controllers/UserController.cs index d4a9cb7..539620b 100644 --- a/Backend/Api/Api/Controllers/UserController.cs +++ b/Backend/Api/Api/Controllers/UserController.cs @@ -10,10 +10,12 @@ namespace Api.Controllers      {          private readonly IUserService _userService;          private readonly IJwtService _jwtService; -        public UserController(IUserService userService, IJwtService jwtService) +        private readonly IPostService _postService; +        public UserController(IUserService userService, IJwtService jwtService, IPostService postService)          {              _userService = userService;              _jwtService = jwtService; +            _postService = postService;          }          [HttpPost("profile/pfp")]          [Authorize(Roles = "User")] @@ -43,5 +45,15 @@ namespace Api.Controllers                  return Ok(rez);              return BadRequest();          } +        [HttpGet("posts")] +        [Authorize(Roles = "User")]  +        public async Task<ActionResult<PostSend>> SelfPosts() +        { +            var id = await _userService.UserIdFromJwt(); +            var rez = await _postService.GetUsersPosts(id); +            if (rez != null) +                return Ok(rez); +            return BadRequest(); +        }      }  } diff --git a/Backend/Api/Api/Interfaces/IPostService.cs b/Backend/Api/Api/Interfaces/IPostService.cs index 24a1e74..fc2ae03 100644 --- a/Backend/Api/Api/Interfaces/IPostService.cs +++ b/Backend/Api/Api/Interfaces/IPostService.cs @@ -17,5 +17,6 @@ namespace Api.Interfaces          Task CascadeDeleteComments(string cmntid, Post p);          Task<PostSendPage> SearchPosts(string locid, int page = 0, int sorttype = 1, int filterdate = 1);          int DateEnumToDays(int filterdate); +        Task<List<PostSend>> GetUsersPosts(string id);      }  }
\ No newline at end of file diff --git a/Backend/Api/Api/Models/User.cs b/Backend/Api/Api/Models/User.cs index b212ebb..2e323a8 100644 --- a/Backend/Api/Api/Models/User.cs +++ b/Backend/Api/Api/Models/User.cs @@ -57,5 +57,6 @@ namespace Api.Models          public String email { get; set; }          public DateTime creationDate { get; set; }          public File? pfp { get; set; } +        public int postcount { get; set; }      }  } diff --git a/Backend/Api/Api/Services/PostService.cs b/Backend/Api/Api/Services/PostService.cs index 321aebe..2d62f49 100644 --- a/Backend/Api/Api/Services/PostService.cs +++ b/Backend/Api/Api/Services/PostService.cs @@ -336,5 +336,18 @@ namespace Api.Services                  default: return 365 * 10;              }          } +        public async Task<List<PostSend>> GetUsersPosts(string id) +        { +            var userposts = await _posts.Find(x => x.ownerId == id).ToListAsync(); +            if (userposts == null) +                return null; +            var tosend = new List<PostSend>(); +            foreach (var post in userposts) +            { +                var x = await postToPostSend(post); +                tosend.Add(x); +            } +            return tosend; +        }      }  } diff --git a/Backend/Api/Api/Services/UserService.cs b/Backend/Api/Api/Services/UserService.cs index 8e7cd42..33e6d11 100644 --- a/Backend/Api/Api/Services/UserService.cs +++ b/Backend/Api/Api/Services/UserService.cs @@ -12,6 +12,7 @@ namespace Api.Services      {          private readonly IHttpContextAccessor _httpContext;          private readonly IMongoCollection<User> _users; +        private readonly IMongoCollection<Post> _posts;          private readonly IJwtService _jwtService;          private IConfiguration _configuration;          private readonly IFileService _fileService; @@ -19,6 +20,7 @@ namespace Api.Services          {              var database = mongoClient.GetDatabase(settings.DatabaseName);              _users = database.GetCollection<User>(settings.UserCollectionName); +            _posts = database.GetCollection<Post>(settings.PostCollectionName);              _jwtService = jwtService;              this._httpContext = httpContextAccessor;              this._configuration = configuration; @@ -353,6 +355,8 @@ namespace Api.Services              tosend._id= user._id;              tosend.creationDate = user.creationDate;              tosend.email=""; +            var userposts = await _posts.Find(x => x.ownerId == user._id).ToListAsync(); +            tosend.postcount = userposts.Count();              return tosend;          }          public async Task<UserSend> GetSelfUserData(string id) @@ -367,6 +371,8 @@ namespace Api.Services              tosend._id = user._id;              tosend.creationDate = user.creationDate;              tosend.email = user.email; +            var userposts = await _posts.Find(x => x.ownerId == user._id).ToListAsync(); +            tosend.postcount = userposts.Count();              return tosend;          }      }  | 
