/smspilot-notifications-laravel

Notifications channel for SMS Pilot service

Primary LanguagePHPMIT LicenseMIT

Laravel

Here's the latest documentation on Laravel Notifications System: https://laravel.com/docs/master/notifications

SMS Pilot notifications channel | For laravel

Version PHP Version Build Status Coverage Downloads count License

This package makes it easy to send notifications using SMS Pilot with Laravel 5.

Installation

Require this package with composer using the following command:

$ composer require avto-dev/smspilot-notifications-laravel "^2.0"

Installed composer is required (how to install composer).

You need to fix the major version of package.

Laravel 5.5 and above uses Package Auto-Discovery, so doesn't require you to manually register the service-provider. Otherwise you must add the service provider to the providers array in ./config/app.php:

'providers' => [
    // ...
    AvtoDev\SmsPilotNotifications\SmsPilotServiceProvider::class,
],

If you wants to disable package service-provider auto discover, just add into your composer.json next lines:

{
    "extra": {
        "laravel": {
            "dont-discover": [
                "avto-dev/smspilot-notifications-laravel"
            ]
        }
    }
}

Setting up the SMS Pilot service

You need to set up SMS Pilot channel in config file ./config/services.php:

<?php

return [

    // ...

    'sms-pilot' => [
        'key'         => env('SMS_PILOT_API_KEY'),
        'sender_name' => env('SMS_PILOT_SENDER_NAME'),
    ],

];

And add into ./.env file next lines:

SMS_PILOT_API_KEY=%your_api_key%
SMS_PILOT_SENDER_NAME=%your_sender_name%

Where SMS_PILOT_API_KEY is SMS Pilot authorization key (token) (try to get it on this page), SMS_PILOT_SENDER_NAME - is sender name, which set in service dashboard (will be used as sender name by default).

Usage

Now you can use the channel in your via() method inside the notification as well as send a push notification:

<?php

use AvtoDev\SmsPilotNotifications\SmsPilotChannel;
use AvtoDev\SmsPilotNotifications\Messages\SmsPilotMessage;

class Notification extends \Illuminate\Notifications\Notification
{
    /**
     * Get the notification channels.
     *
     * @param mixed $notifiable
     *
     * @return array|string
     */
    public function via($notifiable)
    {
        return [SmsPilotChannel::class];
    }

    /**
     * Get the SMS Pilot Message representation of the notification.
     *
     * @param mixed $notifiable
     *
     * @return SmsPilotMessage
     */
    public function toSmsPilot($notifiable): SmsPilotMessage
    {
        return (new SmsPilotMessage)
            ->content('Some SMS notification message');
    }
}
<?php

class Notifiable
{
    use \Illuminate\Notifications\Notifiable;

    /**
     * Get route for 'SMS Pilot' notification.
     *
     * @param mixed $notifiable
     *
     * @return string
     */
    public function routeNotificationForSmsPilot($notifiable): string
    {
        return '71112223344';
    }
}

Testing

For package testing we use phpunit framework and docker-ce + docker-compose as develop environment. So, just write into your terminal after repository cloning:

$ make build
$ make latest # or 'make lowest'
$ make test

Changes log

Release date Commits since latest release

Changes log can be found here.

Support

Issues Issues

If you will find any package errors, please, make an issue in current repository.

License

This is open-sourced software licensed under the MIT License.