Normally Pleasant Mixture

    @gapi/onesignal-notifications
    TypeScript icon, indicating that this package has built-in type declarations

    1.8.139 • Public • Published

    @gapi/onesignal-notifications

    @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

    Installation and basic examples:

    To install this Gapi module, run:
    $ npm install @gapi/onesignal-notifications

    Consuming @gapi/onesignal-notifications

    Import inside AppModule or CoreModule
    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 { }
    Create NotificationService
    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);
        }
    
    }
    Then use it inside your Gapi Application for example inside Effects:
    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 ! :)

    Install

    npm i @gapi/onesignal-notifications

    DownloadsWeekly Downloads

    305

    Version

    1.8.139

    License

    MIT

    Unpacked Size

    46 kB

    Total Files

    34

    Last publish

    Collaborators

    • gapi