ol-zamovshafu/devinotelecom-laravel

Sends SMS using Devinotelecom API

2.1.2 2018-11-17 16:26 UTC

This package is not auto-updated.

Last update: 2024-04-29 19:22:46 UTC


README

Latest Version on Packagist Software License

This package makes it easy to send notifications using Devinotelecom with Laravel 5.7.

Contents

Installation

You can install this package via composer:

composer require ol-zamovshafu/devinotelecom-laravel

Next add the service provider to your config/app.php:

/*
 * Package Service Providers...
 */

NotificationChannels\Devinotelecom\DevinotelecomSmsServiceProvider::class,

Register the DevinotelecomSms alias to your application. This registration is not optional because the channel itself uses this very alias.

'DevinotelecomSms' => NotificationChannels\Devinotelecom\DevinotelecomSms::class,

Setting up the DevinotelecomSms service

Add your desired client, login, password, originator (outbox name, sender name) and request timeout configuration to your config/services.php file:

...
    'DevinotelecomSms' => [
        'client'     => 'http',
        'http'       => [
            'endpoint' => 'https://integrationapi.net/rest/',
        ],
        'login'   => '',
        'password'   => '',
        'originator' => '', // Sender name.
        'timeout'    => 60,
    ],
...

Usage

Now you can use the channel in your via() method inside the notification:

use NotificationChannels\Devinotelecom\DevinotelecomSmsChannel;
use Zamovshafu\Devinotelecom\ShortMessage;

class ResetPasswordWasRequested extends Notification
{
    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return [DevinotelecomSmsChannel::class];
    }
    
    /**
     * Get the DevinotelecomSms representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return string|\Zamovshafu\Devinotelecom\ShortMessage
     */
    public function toDevinotelecomSms($notifiable) {
        return "Test notification";
        // Or
        return new ShortMessage($notifiable->phone_number, 'Test notification');
    }
}

Don't forget to place the dedicated method for DevinotelecomSms inside your notifiables. (e.g. User)

class User extends Authenticatable
{
    use Notifiable;
 
    public function routeNotificationForDevinotelecomSms()
    {
        return "905123456789";
    }
}

Available methods

DevinotelecomSms can also be used directly to send short messages.

Examples:

DevinotelecomSms::sendShortMessage($to, $message);

see: devinotelecom-php documentation for more information.

Available events

DevinotelecomSms Notification channel comes with handy events which provides the required information about the SMS messages.

  1. Message Was Sent (NotificationChannels\Devinotelecom\Events\MessageWasSent)
  2. Sending Message (NotificationChannels\Devinotelecom\Events\SendingMessage)

Example:

namespace App\Listeners;

use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use NotificationChannels\Devinotelecom\Events\MessageWasSent;

class SentMessageHandler
{
    /**
     * Handle the event.
     *
     * @param  MessageWasSent  $event
     * @return void
     */
    public function handle(MessageWasSent $event)
    {
        $response = $event->response;
        $message = $event->message;
    }
}

Notes

$response->groupId() will throw BadMethodCallException if the client is set to 'http'.

Change client configuration with caution.

Changelog

Please see CHANGELOG for more information what has changed recently.

Testing

$ composer test

Security

If you discover any security related issues, please email oleg.lobanov@zamovshafu.com.ua instead of using the issue tracker.

Contributing

Please see CONTRIBUTING for details.

Credits

License

Copyright (c) Hilmi Erdem KEREN erdemkeren@gmail.com

The MIT License (MIT). Please see License File for more information.