@roadmanjs/push 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/push/Push.test.js
CHANGED
|
@@ -2,27 +2,45 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
require("reflect-metadata");
|
|
4
4
|
require("mocha");
|
|
5
|
-
const chai_1 = require("chai");
|
|
6
|
-
const couchset_1 = require("@roadmanjs/couchset");
|
|
7
5
|
const push_methods_1 = require("./push.methods");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
const chai_1 = require("chai");
|
|
7
|
+
// before((done) => {
|
|
8
|
+
// startCouchbase().then(() => done());
|
|
9
|
+
// });
|
|
11
10
|
describe('Push', () => {
|
|
11
|
+
// it('it should send a notification to user', async () => {
|
|
12
|
+
// const userId = '99bc43ba-02ab-4394-b48b-49a39a95443c';
|
|
13
|
+
// const sentMessage = await sendMessageToUser(userId, {
|
|
14
|
+
// data: {
|
|
15
|
+
// type: 'tv',
|
|
16
|
+
// },
|
|
17
|
+
// notification: {
|
|
18
|
+
// title: 'Basic Notification',
|
|
19
|
+
// body: 'This is a basic notification sent from the server!',
|
|
20
|
+
// imageUrl: 'https://my-cdn.com/app-logo.png',
|
|
21
|
+
// sound: 'vuga_zing',
|
|
22
|
+
// },
|
|
23
|
+
// });
|
|
24
|
+
// console.log("sendMessageToUser", sentMessage)
|
|
25
|
+
// expect(sentMessage).to.be.not.empty;
|
|
26
|
+
// });
|
|
12
27
|
it('it should send a notification to user', async () => {
|
|
13
|
-
const
|
|
14
|
-
const sentMessage = await (0, push_methods_1.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
28
|
+
const topic = 'Tv';
|
|
29
|
+
const sentMessage = await (0, push_methods_1.sendMessageToTopic)({
|
|
30
|
+
topic,
|
|
31
|
+
payload: {
|
|
32
|
+
data: {
|
|
33
|
+
type: 'tv',
|
|
34
|
+
},
|
|
35
|
+
notification: {
|
|
36
|
+
title: 'Notification Test',
|
|
37
|
+
body: 'Notification Test',
|
|
38
|
+
// imageUrl: 'https://my-cdn.com/app-logo.png',
|
|
39
|
+
sound: 'vuga_zing',
|
|
40
|
+
},
|
|
23
41
|
},
|
|
24
42
|
});
|
|
25
|
-
console.log(
|
|
43
|
+
console.log('sendMessageToTopic', sentMessage);
|
|
26
44
|
(0, chai_1.expect)(sentMessage).to.be.not.empty;
|
|
27
45
|
});
|
|
28
46
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Push.test.js","sourceRoot":"","sources":["../../src/push/Push.test.ts"],"names":[],"mappings":";;AAAA,4BAA0B;AAC1B,iBAAe;AAEf,+BAA4B;
|
|
1
|
+
{"version":3,"file":"Push.test.js","sourceRoot":"","sources":["../../src/push/Push.test.ts"],"names":[],"mappings":";;AAAA,4BAA0B;AAC1B,iBAAe;AAEf,iDAAqE;AAErE,+BAA4B;AAG5B,qBAAqB;AACrB,2CAA2C;AAC3C,MAAM;AAEN,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IAClB,4DAA4D;IAC5D,6DAA6D;IAC7D,4DAA4D;IAC5D,kBAAkB;IAClB,0BAA0B;IAC1B,aAAa;IACb,0BAA0B;IAC1B,2CAA2C;IAC3C,0EAA0E;IAC1E,2DAA2D;IAC3D,kCAAkC;IAClC,aAAa;IACb,UAAU;IAEV,oDAAoD;IAEpD,2CAA2C;IAC3C,MAAM;IAEN,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC;QACnB,MAAM,WAAW,GAAG,MAAM,IAAA,iCAAkB,EAAC;YACzC,KAAK;YACL,OAAO,EAAE;gBACL,IAAI,EAAE;oBACF,IAAI,EAAE,IAAI;iBACb;gBACD,YAAY,EAAE;oBACV,KAAK,EAAE,mBAAmB;oBAC1B,IAAI,EAAE,mBAAmB;oBACzB,+CAA+C;oBAC/C,KAAK,EAAE,WAAW;iBACrB;aACJ;SACJ,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;QAE/C,IAAA,aAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IACxC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,5 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { FirebaseProject } from '@roadmanjs/firebase-admin';
|
|
2
|
+
import { MessagingDevicesResponse, MessagingOptions, MessagingPayload, MessagingTopicResponse } from 'firebase-admin/messaging';
|
|
3
|
+
export interface PushOptions {
|
|
4
|
+
options?: MessagingOptions;
|
|
5
|
+
payload: MessagingPayload;
|
|
6
|
+
}
|
|
7
|
+
export interface SendToTopic extends PushOptions {
|
|
8
|
+
topic: string;
|
|
9
|
+
client: FirebaseProject;
|
|
10
|
+
}
|
|
11
|
+
export declare const sendToTopic: (args: SendToTopic) => Promise<MessagingTopicResponse | null>;
|
|
12
|
+
export interface SendMessageToTopic extends PushOptions {
|
|
13
|
+
topic: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const sendMessageToTopic: (args: SendMessageToTopic) => Promise<MessagingTopicResponse[] | null>;
|
|
16
|
+
export interface SendNotification {
|
|
3
17
|
options?: MessagingOptions;
|
|
4
18
|
payload: MessagingPayload;
|
|
5
19
|
iosTokens: string[];
|
|
@@ -13,4 +27,3 @@ export declare const sendNotification: (args: SendNotification) => Promise<Messa
|
|
|
13
27
|
* @param options
|
|
14
28
|
*/
|
|
15
29
|
export declare const sendMessageToUser: (owner: string, payload: MessagingPayload, options?: MessagingOptions) => Promise<MessagingDevicesResponse[]>;
|
|
16
|
-
export {};
|
|
@@ -3,13 +3,64 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.sendMessageToUser = exports.sendNotification = void 0;
|
|
6
|
+
exports.sendMessageToUser = exports.sendNotification = exports.sendMessageToTopic = exports.sendToTopic = void 0;
|
|
7
|
+
const firebase_admin_1 = require("@roadmanjs/firebase-admin");
|
|
7
8
|
const user_1 = require("../user");
|
|
9
|
+
const config_1 = require("../config");
|
|
8
10
|
const auth_1 = require("@roadmanjs/auth");
|
|
9
11
|
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
|
10
12
|
const logs_1 = require("@roadmanjs/logs");
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
+
const sendToTopic = async (args) => {
|
|
14
|
+
try {
|
|
15
|
+
const { client, options, payload, topic } = args;
|
|
16
|
+
const sentToTopic = await client.messaging().sendToTopic(topic, payload, options);
|
|
17
|
+
(0, logs_1.log)('messaging().sendToTopic', JSON.stringify(sentToTopic));
|
|
18
|
+
return sentToTopic;
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
(0, logs_1.log)('messaging().sendToTopic', error);
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.sendToTopic = sendToTopic;
|
|
26
|
+
const sendMessageToTopic = async (args) => {
|
|
27
|
+
const { payload, topic } = args;
|
|
28
|
+
const response = [];
|
|
29
|
+
const options = args.options || {
|
|
30
|
+
// Required for background/quit data-only messages on iOS
|
|
31
|
+
contentAvailable: true,
|
|
32
|
+
// Required for background/quit data-only messages on Android
|
|
33
|
+
priority: 'high',
|
|
34
|
+
};
|
|
35
|
+
try {
|
|
36
|
+
const iosClient = await (0, firebase_admin_1.configureFirebase)(config_1.firebaseIos);
|
|
37
|
+
const androidClient = await (0, firebase_admin_1.configureFirebase)(config_1.firebaseAndroid);
|
|
38
|
+
if (iosClient) {
|
|
39
|
+
const iosSent = await (0, exports.sendToTopic)({
|
|
40
|
+
client: iosClient,
|
|
41
|
+
options,
|
|
42
|
+
payload,
|
|
43
|
+
topic,
|
|
44
|
+
});
|
|
45
|
+
response.push(iosSent);
|
|
46
|
+
}
|
|
47
|
+
if (androidClient) {
|
|
48
|
+
const androidSent = await (0, exports.sendToTopic)({
|
|
49
|
+
client: androidClient,
|
|
50
|
+
options,
|
|
51
|
+
payload,
|
|
52
|
+
topic,
|
|
53
|
+
});
|
|
54
|
+
response.push(androidSent);
|
|
55
|
+
}
|
|
56
|
+
return response;
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
(0, logs_1.log)('error sending notification to topic', error);
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
exports.sendMessageToTopic = sendMessageToTopic;
|
|
13
64
|
const sendNotification = async (args) => {
|
|
14
65
|
const { payload, iosTokens = [], androidTokens = [] } = args;
|
|
15
66
|
const response = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.methods.js","sourceRoot":"","sources":["../../src/push/push.methods.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"push.methods.js","sourceRoot":"","sources":["../../src/push/push.methods.ts"],"names":[],"mappings":"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"}
|