Skip to content

Commit e1dd4bc

Browse files
funkenstrahlendplewis
authored andcommitted
add support for apns-priority key (#128)
1 parent 2e84e8a commit e1dd4bc

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

spec/APNS.spec.js

+8-2
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,9 @@ describe('APNS', () => {
172172
};
173173
let expirationTime = 1454571491354;
174174
let collapseId = "collapseIdentifier";
175+
let priority = 5;
175176

176-
let notification = APNS._generateNotification(data, { expirationTime: expirationTime, collapseId: collapseId });
177+
let notification = APNS._generateNotification(data, { expirationTime: expirationTime, collapseId: collapseId, priority: priority });
177178

178179
expect(notification.aps.alert).toEqual({ body: 'alert', title: 'title' });
179180
expect(notification.aps.badge).toEqual(data.badge);
@@ -188,6 +189,7 @@ describe('APNS', () => {
188189
});
189190
expect(notification.expiry).toEqual(Math.round(expirationTime / 1000));
190191
expect(notification.collapseId).toEqual(collapseId);
192+
expect(notification.priority).toEqual(priority);
191193
done();
192194
});
193195

@@ -208,11 +210,13 @@ describe('APNS', () => {
208210
};
209211
let expirationTime = 1454571491354;
210212
let collapseId = "collapseIdentifier";
213+
let priority = 5
211214

212-
let notification = APNS._generateNotification(data, { expirationTime: expirationTime, collapseId: collapseId });
215+
let notification = APNS._generateNotification(data, { expirationTime: expirationTime, collapseId: collapseId, priority: priority });
213216

214217
expect(notification.expiry).toEqual(Math.round(expirationTime / 1000));
215218
expect(notification.collapseId).toEqual(collapseId);
219+
expect(notification.priority).toEqual(priority);
216220

217221
let stringifiedJSON = notification.compile();
218222
let jsonObject = JSON.parse(stringifiedJSON);
@@ -283,6 +287,7 @@ describe('APNS', () => {
283287
let data = {
284288
'collapse_id': collapseId,
285289
'expiration_time': expirationTime,
290+
'priority': 6,
286291
'data': {
287292
'alert': 'alert'
288293
}
@@ -313,6 +318,7 @@ describe('APNS', () => {
313318
expect(notification.aps.alert).toEqual(data.data.alert);
314319
expect(notification.expiry).toEqual(Math.round(data['expiration_time'] / 1000));
315320
expect(notification.collapseId).toEqual(data['collapse_id']);
321+
expect(notification.priority).toEqual(data['priority']);
316322
let apnDevices = calledArgs[1];
317323
expect(apnDevices.length).toEqual(4);
318324
done();

src/APNS.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ export class APNS {
7373
let coreData = data.data;
7474
let expirationTime = data['expiration_time'];
7575
let collapseId = data['collapse_id'];
76+
let priority = data['priority'];
7677
let allPromises = [];
7778

7879
let devicesPerAppIdentifier = {};
@@ -96,7 +97,7 @@ export class APNS {
9697
continue;
9798
}
9899

99-
let headers = { expirationTime: expirationTime, topic: appIdentifier, collapseId: collapseId }
100+
let headers = { expirationTime: expirationTime, topic: appIdentifier, collapseId: collapseId, priority: priority }
100101
let notification = APNS._generateNotification(coreData, headers);
101102
const deviceIds = devices.map(device => device.deviceToken);
102103
let promise = this.sendThroughProvider(notification, deviceIds, providers);
@@ -166,7 +167,7 @@ export class APNS {
166167
/**
167168
* Generate the apns Notification from the data we get from api request.
168169
* @param {Object} coreData The data field under api request body
169-
* @param {Object} headers The header properties for the notification (topic, expirationTime, collapseId)
170+
* @param {Object} headers The header properties for the notification (topic, expirationTime, collapseId, priority)
170171
* @returns {Object} A apns Notification
171172
*/
172173
static _generateNotification(coreData, headers) {
@@ -214,6 +215,10 @@ export class APNS {
214215
notification.topic = headers.topic;
215216
notification.expiry = Math.round(headers.expirationTime / 1000);
216217
notification.collapseId = headers.collapseId;
218+
if (headers.priority) {
219+
// if headers priority is not set 'node-apn' defaults it to 5 which is min. required value for background pushes to launch the app in background.
220+
notification.priority = headers.priority
221+
}
217222
return notification;
218223
}
219224

0 commit comments

Comments
 (0)