💩 TypeORM was failing to load associated classes methods

Signed-off-by: Pau Costa <mico@micodev.es>
main
Pau Costa Ferrer 2024-02-11 17:36:02 +01:00
parent ca4fb32413
commit 40a978c546
1 changed files with 21 additions and 9 deletions

View File

@ -141,20 +141,32 @@ export class PostController {
const user = await this.userRepository.findOne({ const user = await this.userRepository.findOne({
where: { id: req.user.id }, where: { id: req.user.id },
relations: { relations: {
followed: true, followed: { posts: { likedBy: true, comments: true } },
posts: { likedBy: true, comments: true }, posts: {
likedBy: true,
comments: true,
createdBy: true,
},
}, },
}); });
// Get all posts from the followed users
const followedPosts = user.followed const followedPosts = user.followed
.map((followedUser) => followedUser.posts) .map((followedUser) => {
followedUser.deleteSensitiveFields();
if (followedUser.posts) {
return followedUser.posts.map((post) => {
if (post.likedBy.length > 0) {
post.likedBy.forEach((user) => user.deleteSensitiveFields());
}
return {
...post,
createdBy: followedUser,
};
});
}
})
.flat(); .flat();
// Remove sensitive fields
followedPosts.forEach((post) => {
post.deleteSensitiveFields();
});
res.send(followedPosts); res.send(followedPosts);
}); });