Websocket Support (#937)
* Atom / RSS meta link * Spike * Feeling good about this spike now * Remove document.collection * Remove koa.ctx from all presenters to make them portable outside requests * Remove full serialized model from events Move events.add to controllers for now, will eventually be in commands * collections.create event parentDocument -> parentDocumentId * Fix up deprecated tests * Fixed: Doc creation * documents.move * Handle collection deleted * 💚 * Authorize room join requests * Move starred data structure Account for documents with no context on sockets * Add socket.io-redis * Add WEBSOCKETS_ENABLED env variable to disable websockets entirely for self hosted New installations will default to true, existing installations to false * 💚 No need for promise response here * Reload notice
This commit is contained in:
@@ -4,7 +4,6 @@ import slug from 'slug';
|
||||
import randomstring from 'randomstring';
|
||||
import { DataTypes, sequelize } from '../sequelize';
|
||||
import { asyncLock } from '../redis';
|
||||
import events from '../events';
|
||||
import Document from './Document';
|
||||
import CollectionUser from './CollectionUser';
|
||||
import { welcomeMessage } from '../utils/onboarding';
|
||||
@@ -119,18 +118,6 @@ Collection.addHook('afterDestroy', async (model: Collection) => {
|
||||
});
|
||||
});
|
||||
|
||||
Collection.addHook('afterCreate', (model: Collection) =>
|
||||
events.add({ name: 'collections.create', model })
|
||||
);
|
||||
|
||||
Collection.addHook('afterDestroy', (model: Collection) =>
|
||||
events.add({ name: 'collections.delete', model })
|
||||
);
|
||||
|
||||
Collection.addHook('afterUpdate', (model: Collection) =>
|
||||
events.add({ name: 'collections.update', model })
|
||||
);
|
||||
|
||||
Collection.addHook('afterCreate', (model: Collection, options) => {
|
||||
if (model.private) {
|
||||
return CollectionUser.findOrCreate({
|
||||
|
||||
@@ -10,7 +10,6 @@ import removeMarkdown from '@tommoor/remove-markdown';
|
||||
import isUUID from 'validator/lib/isUUID';
|
||||
import { Collection, User } from '../models';
|
||||
import { DataTypes, sequelize } from '../sequelize';
|
||||
import events from '../events';
|
||||
import parseTitle from '../../shared/utils/parseTitle';
|
||||
import unescape from '../../shared/utils/unescape';
|
||||
import Revision from './Revision';
|
||||
@@ -289,14 +288,9 @@ Document.addHook('afterCreate', async model => {
|
||||
await collection.addDocumentToStructure(model);
|
||||
model.collection = collection;
|
||||
|
||||
events.add({ name: 'documents.create', model });
|
||||
return model;
|
||||
});
|
||||
|
||||
Document.addHook('afterDestroy', model =>
|
||||
events.add({ name: 'documents.delete', model })
|
||||
);
|
||||
|
||||
// Instance methods
|
||||
|
||||
// Note: This method marks the document and it's children as deleted
|
||||
@@ -353,7 +347,6 @@ Document.prototype.publish = async function() {
|
||||
await this.save();
|
||||
this.collection = collection;
|
||||
|
||||
events.add({ name: 'documents.publish', model: this });
|
||||
return this;
|
||||
};
|
||||
|
||||
@@ -367,7 +360,6 @@ Document.prototype.archive = async function(userId) {
|
||||
|
||||
await this.archiveWithChildren(userId);
|
||||
|
||||
events.add({ name: 'documents.archive', model: this });
|
||||
return this;
|
||||
};
|
||||
|
||||
@@ -397,7 +389,6 @@ Document.prototype.unarchive = async function(userId) {
|
||||
this.lastModifiedById = userId;
|
||||
await this.save();
|
||||
|
||||
events.add({ name: 'documents.unarchive', model: this });
|
||||
return this;
|
||||
};
|
||||
|
||||
@@ -417,7 +408,6 @@ Document.prototype.delete = function(options) {
|
||||
|
||||
await this.destroy({ transaction, ...options });
|
||||
|
||||
events.add({ name: 'documents.delete', model: this });
|
||||
return this;
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
// @flow
|
||||
import { DataTypes, sequelize } from '../sequelize';
|
||||
import events from '../events';
|
||||
|
||||
const Integration = sequelize.define('integration', {
|
||||
id: {
|
||||
@@ -33,16 +32,4 @@ Integration.associate = models => {
|
||||
});
|
||||
};
|
||||
|
||||
Integration.addHook('afterCreate', async model => {
|
||||
events.add({ name: 'integrations.create', model });
|
||||
});
|
||||
|
||||
Integration.addHook('afterUpdate', model =>
|
||||
events.add({ name: 'integrations.update', model })
|
||||
);
|
||||
|
||||
Integration.addHook('afterDestroy', model =>
|
||||
events.add({ name: 'integrations.delete', model })
|
||||
);
|
||||
|
||||
export default Integration;
|
||||
|
||||
Reference in New Issue
Block a user