Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stradivario/gapi-onesignal-notifications
Gapi OneSignal Notifications module
https://github.com/stradivario/gapi-onesignal-notifications
gapi notifications onesignal
Last synced: 16 days ago
JSON representation
Gapi OneSignal Notifications module
- Host: GitHub
- URL: https://github.com/stradivario/gapi-onesignal-notifications
- Owner: Stradivario
- Created: 2018-04-27T11:37:56.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-02-03T03:49:55.000Z (11 months ago)
- Last Synced: 2024-10-18T18:22:54.970Z (2 months ago)
- Topics: gapi, notifications, onesignal
- Language: TypeScript
- Homepage:
- Size: 331 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# @gapi/onesignal-notifications
#### @Gapi OneSignal Notifications module @StrongTyped forked and re-written with typescript from [onesignal-node](https://github.com/KolektifLabs/onesignal-node)
##### For questions/issues you can write ticket [here](http://gitlab.youvolio.com/gapi/onesignal-notifications/issues)
##### This module is intended to be used with [GAPI](https://github.com/Stradivario/gapi)## Installation and basic examples:
##### To install this Gapi module, run:```bash
$ npm install @gapi/onesignal-notifications
```## Consuming @gapi/onesignal-notifications
##### Import inside AppModule or CoreModule
```typescriptimport { 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
```typescript
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:
```typescript
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.myevent)
async myEventTrigger(result, {payload}, context) {
await this.notificationService.createNotification(result);
}
}
```More detailed [DOCUMENTATION](https://github.com/KolektifLabs/onesignal-node) you can find inside original onesignal-node module
Enjoy ! :)