bigbluebutton-Github/bigbluebutton-html5/imports/api/connection-status/server/publishers.js

31 lines
1.0 KiB
JavaScript
Raw Normal View History

2020-04-10 01:01:46 +08:00
import { Meteor } from 'meteor/meteor';
import { check } from 'meteor/check';
import Logger from '/imports/startup/server/logger';
import ConnectionStatus from '/imports/api/connection-status';
import AuthTokenValidation, { ValidationStates } from '/imports/api/auth-token-validation';
2020-04-10 01:01:46 +08:00
function connectionStatus() {
const tokenValidation = AuthTokenValidation.findOne({ connectionId: this.connection.id });
if (!tokenValidation || tokenValidation.validationStatus !== ValidationStates.VALIDATED) {
Logger.warn(`Publishing ConnectionStatus was requested by unauth connection ${this.connection.id}`);
2020-04-10 01:01:46 +08:00
return ConnectionStatus.find({ meetingId: '' });
}
const { meetingId, userId } = tokenValidation;
2020-04-10 01:01:46 +08:00
check(meetingId, String);
check(userId, String);
2020-04-10 01:01:46 +08:00
Logger.info(`Publishing connection status for ${meetingId} ${userId}`);
2020-04-10 01:01:46 +08:00
return ConnectionStatus.find({ meetingId });
}
function publish(...args) {
const boundNote = connectionStatus.bind(this);
return boundNote(...args);
}
Meteor.publish('connection-status', publish);