0.0.6 • Published 3 years ago

adonis-notify v0.0.6

Weekly downloads
4
License
ISC
Repository
github
Last release
3 years ago

Adonis Notify

Send notifications in AdonisJS using Twilio, Firebase Cloud Message and native Adonis Email service provider.

Installation

Add the package in your Adonis project.

npm install adonis-notify --save

Create a config file named notification.js in your project config folder.

'use strict';

const Env = use('Env');

module.exports = {
  twilio: {
    account_sid: '',
    authentication_token: '',
    notification_service: '',
    whatsapp: {
      number: '',
    },
  },

  firebase: {
    enviroment: '',
    database: {
      url: '',
    },
  },

  email: {
    sender: '',
  },
};

Add the new providers in your app.js

const providers = [
  ...
  'adonis-notify/providers/EmailProvider',
  'adonis-notify/providers/PushProvider',
  'adonis-notify/providers/SmsProvider',
  'adonis-notify/providers/WhatsappProvider',
];

Usage

Push Notifications

Before sending push notifications with firebase, add the following variable to your application: GOOGLE_APPLICATION_CREDENTIALS

See: https://cloud.google.com/docs/authentication/getting-started

const Push = use('Adonis/Notify/Push');

// Registering user device
Push.saveDevice(userDeviceToken, 'userTag');

// Sending pushs
const payload = {
  title: 'Your push title.',
  body: 'Your push message.'
}

Push.send([userDeviceTokens], payload);

You can also send an optional data attribute.

// Custom data
const payload = {
  title: 'Your push title.',
  body: 'Your push message.',
  data: {
    foo: 'bar',
    bar: 'foo'
  }
}

Sending Sms

const Sms = use('Adonis/Notify/Sms');

Sms.send('+5582999999999', 'Hello World!');

Sending Whatsapp messages

const Whatsapp = use('Adonis/Notify/Whatsapp');

Whatsapp.send('+5582999999999', 'Hello World!');

Sending Emails

Before sending emails, make sure you have set up Adonis' native email provider service. See: https://adonisjs.com/docs/4.1/mail

const Email = use('Adonis/Notify/Email');

const payload = {
  email: 'user@domain.com.br',
  template: 'your.edge.template',
  variables: {
    foo: 'bar',
    bar: 'foo',
  },
  subject: 'Cool email subject ;)',
};

Email.send(payload);

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.