aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Backend/Api/Api/Controllers/UserController.cs14
-rw-r--r--Backend/Api/Api/Interfaces/IPostService.cs1
-rw-r--r--Backend/Api/Api/Models/User.cs1
-rw-r--r--Backend/Api/Api/Services/PostService.cs13
-rw-r--r--Backend/Api/Api/Services/UserService.cs6
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;
}
}