The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/apps/meteor/app/search/server/events/index.ts

32 lines
1.0 KiB

import type { IMessage } from '@rocket.chat/core-typings';
import { settings } from '../../../settings/server';
import { callbacks } from '../../../../lib/callbacks';
import { searchProviderService } from '../service';
import { EventService } from './EventService';
export const searchEventService = new EventService();
/**
* Listen to message changes via Hooks
*/
function afterSaveMessage(m: IMessage) {
searchEventService.promoteEvent('message.save', m._id, m);
return m;
}
function afterDeleteMessage(m: IMessage) {
searchEventService.promoteEvent('message.delete', m._id);
return m;
}
settings.watch('Search.Provider', () => {
if (searchProviderService.activeProvider?.on) {
callbacks.add('afterSaveMessage', afterSaveMessage, callbacks.priority.MEDIUM, 'search-events');
callbacks.add('afterDeleteMessage', afterDeleteMessage, callbacks.priority.MEDIUM, 'search-events-delete');
return;
}
callbacks.remove('afterSaveMessage', 'search-events');
callbacks.remove('afterDeleteMessage', 'search-events-delete');
});