Files
kami-parse-server/src/LiveQuery/ParseCloudCodePublisher.js

41 lines
1.2 KiB
JavaScript
Raw Normal View History

2016-03-10 14:27:00 -08:00
import { ParsePubSub } from './ParsePubSub';
import Parse from 'parse/node';
import logger from '../logger';
2016-03-10 14:27:00 -08:00
class ParseCloudCodePublisher {
parsePublisher: Object;
// config object of the publisher, right now it only contains the redisURL,
// but we may extend it later.
constructor(config: any = {}) {
this.parsePublisher = ParsePubSub.createPublisher(config);
}
onCloudCodeAfterSave(request: any): void {
2016-11-28 12:15:21 -02:00
this._onCloudCodeMessage(Parse.applicationId + 'afterSave', request);
2016-03-10 14:27:00 -08:00
}
onCloudCodeAfterDelete(request: any): void {
2016-11-28 12:15:21 -02:00
this._onCloudCodeMessage(Parse.applicationId + 'afterDelete', request);
2016-03-10 14:27:00 -08:00
}
// Request is the request object from cloud code functions. request.object is a ParseObject.
_onCloudCodeMessage(type: string, request: any): void {
logger.verbose(
'Raw request from cloud code current : %j | original : %j',
request.object,
request.original
);
2016-03-10 14:27:00 -08:00
// We need the full JSON which includes className
2016-12-07 15:17:05 -08:00
const message = {
currentParseObject: request.object._toFullJSON(),
};
2016-03-10 14:27:00 -08:00
if (request.original) {
message.originalParseObject = request.original._toFullJSON();
}
this.parsePublisher.publish(type, JSON.stringify(message));
}
}
export { ParseCloudCodePublisher };