pishehgostar/exchange-melipayamak

There is no license information available for the latest version (v1.0.0) of this package.

v1.0.0 2024-02-04 14:04 UTC

This package is auto-updated.

Last update: 2024-06-04 15:25:41 UTC


README

This package makes it easy to send notifications using Melipayamak , with Laravel 9.x

Installation

This package can be installed through Composer.

composer require pishehgostar/exchange-melipayamak

Setting up Melipayamak service

Add your melipayamak service information in services.php config file.

return [

    /*
    |--------------------------------------------------------------------------
    | Third Party Services
    |--------------------------------------------------------------------------
    |
    | This file is for storing the credentials for third party services such
    | as Mailgun, Postmark, AWS and more. This file provides the de facto
    | location for this type of information, allowing packages to have
    | a conventional file to locate the various service credentials.
    |
    
    // ...
    
    'melipayamak'=>[
        'username'=>'###',
        'password'=>'###',
        'from'=>'###',
    ]
    
];

Usage

In every model you wish to be notifiable via Melipayamak, you must add a channel ID property to that model accessible through a routeNotificationForMelipayamak method:

class YourModel extends Eloquent
{
    use Notifiable;

    public function routeNotificationForMelipayamak(Notification $notification): array|string
    {
        return $this->mobile;
    }
}

You may now tell Laravel to send notifications to melipayamak channels in the via method:

class InvoicePaidNotification extends Notification
{
    public function via(object $notifiable): array
    {
        return ['melipayamak'];
    }
    
    // send sms using patterns
    public function toMelipayamak(object $notifiable): MelipayamakSmsMessage
    {
        $pattern_code = '######';
        $pattern_parameters = ['first','second'];
        return (new MelipayamakSmsMessage)
            ->pattern($pattern_code,$pattern_parameters);
    }
    
    // send simple sms
    public function toMelipayamak(object $notifiable): MelipayamakSmsMessage
    {
        return (new MelipayamakSmsMessage)
            ->simple('salam');
    }
}