Я работаю над улучшением изучения AdonisJS и работаю над проектом, пока я учусь.
Проект является клоном, похожим на социальную, и я пытаюсь привлечь только пользователей, за которыми я следую в действиилента показывает их фотографию только один раз, а затем показывает только четыре последних сообщения.
Однако, что в настоящее время происходит с моим кодом, если я не включаю пользователей, за которыми я следую, я получаю всех пользователей всистема и их пользовательские фото повторяются для каждого сообщения.
Если я соблюдаю ограничение 4, я получаю только самые первые 4 сообщения в базе данных от первого пользователя в базе данных. Я пытаюсь показать последние 4 сообщения для каждого пользователя, на которого я подписан. Вот мой код ниже.
Любые идеи будут с благодарностью!
FollowedUserPosts: async (_, __, context) => {
let auth = context.auth;
try {
await auth.check()
const users = await Database.table('users').select('*')
for (let i=0; i<users.length; i++) {
// Find users I follow
const myfollows = await Follow.query()
.where('follower_uuid', '=', user.uuid)
.where('follow_uuid', '=', user.follow_uuid)
.fetch()
// Add profile Image
const photos = await PhotoUpload.query()
.where('belongsTo', '=', users[i].uuid)
.where('type', '=', 'userPhoto')
.fetch()
if (photos.rows.length >0) {
users[i].photo = photos.rows[0].name
}
}
// posts list from posts table
const posts = await Database.table('posts').select('*').limit(4)
// loop posts
for (let i=0; i<posts.length; i++) {
// user posted current post
const user = users.filter((value) => value.id === posts[i].op)[0];
posts[i].opFirstName = user.firstname;
posts[i].opLastName = user.lastname;
posts[i].opPhoto = user.photo;
// Add post images
const photos = await PhotoUpload.query()
.where('belongsTo', '=', posts[i].uuid)
.where('type', '=', 'post')
.fetch()
posts[i].photos = photos.rows
}
return posts
} catch (error) {
throw new Error('Missing or invalid jwt token')
}
},