Отправка обновлений реляционных данных из внешнего интерфейса в конечный - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть стол, который вмещает разных людей. Теперь пользователь может выбрать группу людей (скажем, Тома Дика и Гарри) и сгруппировать их в новую «команду». В бэкэнде мне нужно обновить Тома, Дика и Гарри и добавить идентификатор команды в их поле team_field.

например:.

{
name: "Tom",
age: 12,
team_id: id_for_team_1
}

Но поскольку team_1 не существовало до того, как пользователь выбрал Тома, Дика и Гарри и создал команду, у меня еще нет идентификатора для team1.

Сначала мне нужно это, кажется:

{
_id: id_for_team_1
team_name: "Team Cool"
team_color: "blue"
}

Как бы я решил эту проблему во внешнем интерфейсе?

Моя идея: Сделать запрос к бэкэнду, чтобы создать команду на сервере, получить team_id обратно из бэкэнда, а затем добавить идентификатор для Тома, Дика и Гарри, а затем отправить их обновляет профили до бэкэнда?

Но: это самый простой подход, который я мог бы использовать, или есть лучшие способы решить эту проблему? Это кажется сложным. В идеале , я хотел бы просто обновить все во внешнем интерфейсе, то есть создать объект команды + обновить профили, а затем отправить все это на сервер за один раз. Но я не знаю, как я мог это сделать, так как я, кажется, зависел от идентификаторов mongodbs и не мог просто создать свой собственный в интерфейсе.

1 Ответ

0 голосов
/ 04 сентября 2018

В случае, если вы просто хотите обновить команды, которым они принадлежат, вы можете одним вызовом отправить список пользовательских идентификаторов, а бэкэнд может создать новую команду и также обновить team_id. Псевдокод:

1) POST /api/team
2) let userIds = req.body.userIds
3) newTeamId = Create a new team in Mongo and get its id
4) for(uid in userIds){ 
    user = Mongo.find(id : uid);
    user.teamId = newTeamId 
    Mongo.update(user)
 }

Если вы также хотите иметь возможность обновлять информацию о пользователях, я бы создал 2 метода API, один для обновления профиля пользователя, а другой для управления командами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...