fahmiardi/laravel-notification

Various laravel notifications channels

0.1 2016-12-15 17:56 UTC

This package is not auto-updated.

Last update: 2020-09-13 18:00:19 UTC


README

Available Channels:

  • AWS SNS (Simple Notification Services), support using credentials or profile

Install

$ composer require fahmiardi/laravel-notification

Setup

Add config to app/services.php:

return [
    ...
    'sns' => [
        'key' => env('SNS_KEY'),
        'secret' => env('SNS_SECRET'),
        'region' => env('SNS_REGION'),
        'profile' => env('AWS_PROFILE'), // keep this value empty when using credentials
    ],
];

Usage

Use generic:

<?php

$user->notify(
    new \Fahmiardi\Laravel\Notifications\GenericSnsNotification($topicArn, $subject, $message)
);

Create your own:

Read the official page https://laravel.com/docs/5.3/notifications#creating-notifications

<?php

namespace App\Notifications;

use Illuminate\Notifications\Notification;
use Fahmiardi\Laravel\Notifications\Channels\SnsChannel;
use Fahmiardi\Laravel\Notifications\Messages\SnsMessage;

class InvoicePaid extends Notification
{
    protected $invoice;

    public function __construct($invoice)
    {
        $this->invoice = $invoice;
    }

    public function via($notifiable)
    {
        return [SnsChannel::class];
    }

    public function toSns($notifiable)
    {
        return (new SnsMessage)
            ->topicArn('ARN')
            ->subject('SUBJECT')
            ->message('MESSAGE');
    }
}

$user->notify(new InvoicePaid($invoice));