Meteor.js: как поменять курсор (запись), передоваемый клиенту?

Допустим есть подписка, которая возвращает одну определенную запись (курсор). Там есть поле "nextPlayer", где указан id юзера, который ходит следующим. Но нужно, чтобы поле nextPlayer на клиенте имело значение либо 0 (если ходит текущий клиент) либо 1 (если ходит другой). Чтобы клиенту не передавались id пользователей. С помощью чего это можно реализовать?
Код на сервере:
Meteor.publish('current-game', function(){ 
 return Games.find({users: this.userId, finished: {$exists: false}}, {limit: 1})
})
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ответы на вопрос 1
zentelechia
@zentelechia
Тестирую идеи - делаю прототипы софта и железа
Возможно стоит добавить еще одно поле в каждый документ в Games, "а-ля" myTurn : 1
А в публикации сделать так
Meteor.publish('current-game', function(){ 
  let options = {limit: 1, fields: {myTurn: 0}}
  const myTurn = Games.findOne({users: this.userId, nextPlayer: this.userId, finished: {$exists: false}}))
  if (myTurn){
    options.fields.myTurn=1
 }
 return Games.find({users: this.userId, finished: {$exists: false}}, {limit: 1})
})


А на клиенте проверять свойство myTurn
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы