В приложении есть необходимость получить список юзеров с постами для каждого из юзеров:
[
{id: 1, username: 'xyz', age: 22, posts: [{id: 1, title: 'first post'},
{id: 2, username: 'aaa', age: 41, posts: [{id: 41, title: 'hello'},
] // и так далее...
У меня уже отдельно имплементированы репозитории где можно получить либо только юзеров, либо только посты.
Для юзкейса с получением юзеров включая в них посты, будет ли ок сначала получить юзеров и потом для них фетчить посты?
const users = await this.userRepository.findLatest();
const postsByUserIds = await this.postRepository.findByUserIds(users.map(user => user.id));
return users.map((user) => {
return {
...user,
posts: postsByUserIds(user.id)
}
})
Или же лучше создать в UserReposotory метод findWithPosts в котором просто дополнительно тянуть посты для каждого юзера?
Просто в этом случае тогда вроде как нарушается разделение ответственности. Но такой способ вроде выглядит проще.
А предыдущий - в плане разделения ответственности гуд, но по производительности из-за дополнительных циклов вроде бы хуже.