getPositionUpdates(workspaceId) {
    return new Promise((resolve, reject) => {
      const sql = workspaceId
        ? `SELECT workspaceId, position from users
          WHERE
          (EXISTS (SELECT 1 from users WHERE workspaceId == ${workspaceId}))
          AND workspaceId = ${workspaceId};`
        : `SELECT workspaceId, position from users;`;
      this.db.all(sql, (err, positionUpdates) => {
        if (err) {
          console.error(err.message);
          reject('Failed to get positions.');
        } else {
          positionUpdates.forEach((positionUpdate) => {
            positionUpdate.position = JSON.parse(positionUpdate.position);
          });
          resolve(positionUpdates);
        }
      });
    });
  }
Query the position for the given user. If no user is specified will
return the positions of all users.
@param {string=} workspaceId workspaceId of the user.
@returns {!Promise} Promise object with an array of positionUpdate objects.
@public