💩 TypeORM was failing to load associated classes methods
Signed-off-by: Pau Costa <mico@micodev.es>main
parent
ca4fb32413
commit
40a978c546
|
|
@ -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) => {
|
||||||
.flat();
|
followedUser.deleteSensitiveFields();
|
||||||
|
if (followedUser.posts) {
|
||||||
// Remove sensitive fields
|
return followedUser.posts.map((post) => {
|
||||||
followedPosts.forEach((post) => {
|
if (post.likedBy.length > 0) {
|
||||||
post.deleteSensitiveFields();
|
post.likedBy.forEach((user) => user.deleteSensitiveFields());
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
...post,
|
||||||
|
createdBy: followedUser,
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.flat();
|
||||||
res.send(followedPosts);
|
res.send(followedPosts);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue