RN Javascript - изменение записей в списке объектов - PullRequest
0 голосов
/ 27 февраля 2020

У меня проблема с логикой c, которая сводила меня с ума весь день; надеюсь, что вы, ребята, можете помочь!

Поэтому я использую API Google Maps для возврата списка событий из календаря, а затем фильтрую эти события для определенных c событий, к которым принадлежит пользователь ( электронная почта в посетителях); теперь я пытаюсь извлечь участников мероприятия, проверить электронную почту других пользователей, выполнить запрос, чтобы вернуть их имя и изображение, затем добавить этот объект с их именем и изображением к исходному событию, а затем снова вернуть весь список с обновленными записями.

Вот событие, которое я получаю с сервера:

{ ...
  id: 'ID',
  status: 'confirmed',
  description: 'Keyword' 
  start: [Object],
  end: [Object],
  attendees: [Array],
  reminders: [Object]
  ...
}

Я беру электронное письмо с участником, который не является пользователем, и запускаю запрос в моей локальной базе данных, чтобы получить их имя и изображение, затем я хочу добавить их, чтобы событие показывалось так:

{ ...
  id: 'ID',
  status: 'confirmed',
  description: 'Keyword' 
  start: [Object],
  end: [Object],
  attendees: [Array],
  reminders: [Object]
  ...
  opponent: {name: 'Name', picture: 'Picture_URL'}
}

Вот что у меня есть:

const events = results.data.items.filter(event => {
    return (
      event.description &&
      event.description.includes('Keyword') &&
      event.attendees.some(attendee => {
        return attendee.email === currentUser.email;
      })
    );
  });

Events come back fine from here, filtered with the events that include the user in attendees. I can't seem to get the next bit to work where I would modify the {event} object and add the {opponent} to it.

  const opponent = events.map(event => {
    return event.attendees.filter(async attendee => {
      if (attendee.email !== currentUser.email) {
        return await prisma.query
          .user({ where: { email: attendee.email } })
          .then(user => {
            return {
              name: user.name,
              picture: user.picture,
            };
          })
          .catch(err => {
            return;
          });
      }
    });
  });

PS: prisma.query.user возвращает Обещание.

Буду очень признателен за любые указания или помощь в том, что мне не хватает!

Спасибо, ребята! :)

...