@Gapi OneSignal Notifications module @StrongTyped forked and re-written with typescript from onesignal-node
For questions/issues you can write ticket here
This module is intended to be used with GAPI
$ npm install @gapi/onesignal-notifications
import { Module } from '@rxdi/core';
import { OneSignalModule } from '@gapi/onesignal-notifications';
@Module({
imports: [
OneSignalModule.forRoot({
userAuthKey: 'ZmY2YjVkMjMtMjY0OC00Y2E2LTkxBTQtYTVmOWY1MmJhZDg1',
app: {
appAuthKey: 'MTa4NGIzNjQtNGFkMy00MzY4AWJjZTctNzNjYzYyODgzZDhh',
appId: 'd856cd4h-f834-42cb-b541-22ee20bcf499'
}
})
],
services: [NotificationService],
effects: [YourCustomEffects]
})
export class CoreModule { }
import { Service } from '@rxdi/core';
import { PurchasesType } from '../../../purchases/types/purchases.type';
import { OneSignalClientService, Notification } from '@gapi/onesignal-notifications';
@Service()
export class NotificationService {
constructor(
private client: OneSignalClientService
) { }
async createNotification(purchaseData: PurchasesType) {
const notification: Notification = new Notification({
contents: {
en: 'Test notification',
tr: 'Test mesajı',
bg: 'Съобщение за проба'
}
});
notification.setTargetDevices(['b188dd55-7c70-4072-b696-8b66a56f9c4c']);
notification.setParameter('data', { type: 'notification-created', data: {} });
return await this.client.sendNotification(notification);
}
async sendNotification() {
const firstNotification = new Notification({
contents: {
en: 'Test notification',
tr: 'Test mesajı',
bg: 'Съобщение за проба'
}
});
firstNotification.setTargetDevices(['b188dd55-7c70-4072-b696-8b66a56f9c4c']);
firstNotification.setParameter('data', { 'abc': '123', 'foo': 'bar' });
return await this.client.sendNotification(firstNotification);
}
}
import { OfType, Effect } from '@rxdi/core';
import { GapiPubSubService } from '@gapi/core';
import { EffectTypes } from '../core/api-introspection/EffectTypes';
import { NotificationService } from '../core/services/notification/notification.service';
@Effect()
export class YourCustomEffects {
constructor(
private notificationService: NotificationService
) {}
@OfType<EffectTypes>(EffectTypes.myevent)
async myEventTrigger(result, {payload}, context) {
await this.notificationService.createNotification(result);
}
}
More detailed DOCUMENTATION you can find inside original onesignal-node module Enjoy ! :)