2021-10-16 03:07:13 +08:00
|
|
|
import { Meteor } from 'meteor/meteor';
|
|
|
|
import Logger from '/imports/startup/server/logger';
|
|
|
|
import Pads, { PadsSessions, PadsUpdates } from '/imports/api/pads';
|
|
|
|
import AuthTokenValidation, { ValidationStates } from '/imports/api/auth-token-validation';
|
|
|
|
|
2023-03-16 22:00:45 +08:00
|
|
|
async function pads() {
|
|
|
|
const tokenValidation = await AuthTokenValidation
|
|
|
|
.findOneAsync({ connectionId: this.connection.id });
|
2021-10-16 03:07:13 +08:00
|
|
|
|
|
|
|
if (!tokenValidation || tokenValidation.validationStatus !== ValidationStates.VALIDATED) {
|
|
|
|
Logger.warn(`Publishing Pads was requested by unauth connection ${this.connection.id}`);
|
|
|
|
return Pads.find({ meetingId: '' });
|
|
|
|
}
|
|
|
|
|
|
|
|
const { meetingId, userId } = tokenValidation;
|
|
|
|
|
|
|
|
Logger.info(`Publishing Pads for ${meetingId} ${userId}`);
|
|
|
|
|
|
|
|
const options = {
|
|
|
|
fields: {
|
|
|
|
padId: 0,
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
return Pads.find({ meetingId }, options);
|
|
|
|
}
|
|
|
|
|
2023-03-16 22:00:45 +08:00
|
|
|
async function padsSessions() {
|
|
|
|
const tokenValidation = await AuthTokenValidation
|
|
|
|
.findOneAsync({ connectionId: this.connection.id });
|
2021-10-16 03:07:13 +08:00
|
|
|
|
|
|
|
if (!tokenValidation || tokenValidation.validationStatus !== ValidationStates.VALIDATED) {
|
|
|
|
Logger.warn(`Publishing PadsSessions was requested by unauth connection ${this.connection.id}`);
|
|
|
|
return PadsSessions.find({ meetingId: '' });
|
|
|
|
}
|
|
|
|
|
|
|
|
const { meetingId, userId } = tokenValidation;
|
|
|
|
|
|
|
|
Logger.info(`Publishing PadsSessions for ${meetingId} ${userId}`);
|
|
|
|
|
|
|
|
return PadsSessions.find({ meetingId, userId });
|
|
|
|
}
|
|
|
|
|
2023-03-16 22:00:45 +08:00
|
|
|
async function padsUpdates() {
|
|
|
|
const tokenValidation = await AuthTokenValidation
|
|
|
|
.findOneAsync({ connectionId: this.connection.id });
|
2021-10-16 03:07:13 +08:00
|
|
|
|
|
|
|
if (!tokenValidation || tokenValidation.validationStatus !== ValidationStates.VALIDATED) {
|
|
|
|
Logger.warn(`Publishing PadsUpdates was requested by unauth connection ${this.connection.id}`);
|
|
|
|
return PadsUpdates.find({ meetingId: '' });
|
|
|
|
}
|
|
|
|
|
|
|
|
const { meetingId, userId } = tokenValidation;
|
|
|
|
|
|
|
|
Logger.info(`Publishing PadsUpdates for ${meetingId} ${userId}`);
|
|
|
|
|
|
|
|
return PadsUpdates.find({ meetingId });
|
|
|
|
}
|
|
|
|
|
|
|
|
function publishPads(...args) {
|
|
|
|
const boundPads = pads.bind(this);
|
|
|
|
return boundPads(...args);
|
|
|
|
}
|
|
|
|
|
|
|
|
function publishPadsSessions(...args) {
|
|
|
|
const boundPadsSessions = padsSessions.bind(this);
|
|
|
|
return boundPadsSessions(...args);
|
|
|
|
}
|
|
|
|
|
|
|
|
function publishPadsUpdates(...args) {
|
|
|
|
const boundPadsUpdates = padsUpdates.bind(this);
|
|
|
|
return boundPadsUpdates(...args);
|
|
|
|
}
|
|
|
|
|
|
|
|
Meteor.publish('pads', publishPads);
|
|
|
|
|
|
|
|
Meteor.publish('pads-sessions', publishPadsSessions);
|
|
|
|
|
|
|
|
Meteor.publish('pads-updates', publishPadsUpdates);
|