Prefix default push channel with applicationId (#4182)

This commit is contained in:
marvelm
2017-09-18 15:25:03 -04:00
committed by Florent Vilmart
parent a5ce9fc175
commit 07ae85eef0
2 changed files with 61 additions and 2 deletions

58
spec/PushQueue.spec.js Normal file
View File

@@ -0,0 +1,58 @@
import Config from "../src/Config";
import {PushQueue} from "../src/Push/PushQueue";
describe('PushQueue', () => {
describe('With a defined channel', () => {
it('should be propagated to the PushWorker and PushQueue', (done) => {
reconfigureServer({
push: {
queueOptions: {
disablePushWorker: false,
channel: 'my-specific-channel'
},
adapter: {
send() {
return Promise.resolve();
},
getValidPushTypes() {
return [];
}
}
}
})
.then(() => {
const config = new Config(Parse.applicationId);
expect(config.pushWorker.channel).toEqual('my-specific-channel', 'pushWorker.channel');
expect(config.pushControllerQueue.channel).toEqual('my-specific-channel', 'pushWorker.channel');
})
.then(done, done.fail);
});
});
describe('Default channel', () => {
it('should be prefixed with the applicationId', (done) => {
reconfigureServer({
push: {
queueOptions: {
disablePushWorker: false
},
adapter: {
send() {
return Promise.resolve();
},
getValidPushTypes() {
return [];
}
}
}
})
.then(() => {
const config = new Config(Parse.applicationId);
expect(PushQueue.defaultPushChannel()).toEqual('test-parse-server-push');
expect(config.pushWorker.channel).toEqual('test-parse-server-push');
expect(config.pushControllerQueue.channel).toEqual('test-parse-server-push');
})
.then(done, done.fail);
});
});
});

View File

@@ -1,6 +1,7 @@
import { ParseMessageQueue } from '../ParseMessageQueue'; import { ParseMessageQueue } from '../ParseMessageQueue';
import rest from '../rest'; import rest from '../rest';
import { applyDeviceTokenExists } from './utils'; import { applyDeviceTokenExists } from './utils';
import Parse from 'parse/node';
const PUSH_CHANNEL = 'parse-server-push'; const PUSH_CHANNEL = 'parse-server-push';
const DEFAULT_BATCH_SIZE = 100; const DEFAULT_BATCH_SIZE = 100;
@@ -13,13 +14,13 @@ export class PushQueue {
// config object of the publisher, right now it only contains the redisURL, // config object of the publisher, right now it only contains the redisURL,
// but we may extend it later. // but we may extend it later.
constructor(config: any = {}) { constructor(config: any = {}) {
this.channel = config.channel || PUSH_CHANNEL; this.channel = config.channel || PushQueue.defaultPushChannel();
this.batchSize = config.batchSize || DEFAULT_BATCH_SIZE; this.batchSize = config.batchSize || DEFAULT_BATCH_SIZE;
this.parsePublisher = ParseMessageQueue.createPublisher(config); this.parsePublisher = ParseMessageQueue.createPublisher(config);
} }
static defaultPushChannel() { static defaultPushChannel() {
return PUSH_CHANNEL; return `${Parse.applicationId}-${PUSH_CHANNEL}`;
} }
enqueue(body, where, config, auth, pushStatus) { enqueue(body, where, config, auth, pushStatus) {