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; } } |