diff --git a/README.md b/README.md index 0ac66e8..8f18bd7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # BMail -The BMail package allows you to send email templates on Laravel to the Bluescale API. +The BMail package allows you to send email templates with Laravel to the Bluescale API. ## Installation @@ -44,28 +44,61 @@ BMAIL_API_URL=the_api_url ## Usage +First, create a new notification or use an existing one : + ```bash -$template = (new BMailTemplate("** template_id **")) - ->sender("john.doe@gmail.com", "John OPTIONNAL") OPTIONNAL - ->replyTo("jean.grey@gmail.com", "Jean OPTIONNAL") OPTIONNAL - ->recipients([ - [ - "elvis@gmail.com", [ - "name" => "Elvis" OPTIONNAL, - "parameters" => ["key" => "value"] OPTIONNAL +php artisan make:notification BMailNotification +``` + +Next, add a public field 'id' to your class, which will be initialized in the constructor : + +```bash +public $id; + +/** + * @param Integer $id + */ +public function __construct(Integer $id) +{ + $this->id = $id; +} +``` + +Then, in the via method add : + +```bash +return [BMailChannel::class]; +``` + +Then, create a toTemplate method, in which you specify your template fields : + +```bash +public function toTemplate($notifiable) +{ + return (new BMailTemplate($this->id)) + ->sender("john.doe@gmail.com", "John OPTIONNAL") OPTIONNAL + ->replyTo("jean.grey@gmail.com", "Jean OPTIONNAL") OPTIONNAL + ->recipients([ + [ + "elvis@gmail.com", [ + "name" => "Elvis" OPTIONNAL, + "parameters" => ["key" => "value"] OPTIONNAL + ] + ], + [ + "robert@gmail.com" ] - ], - [ - "robert@gmail.com" - ] - ]) - ->addRecipient("edward@gmail.com") - ->parameters(["key" => "value", "key" => "value"]) - ->addParameter("key", "value"); + ]) + ->addRecipient("edward@gmail.com") + ->parameters(["key" => "value", "key" => "value"]) + ->addParameter("key", "value"); +} ``` +Finally, send a notification for a user in your controller: + ```bash -return (new BMailApi(config("bmail.api_key")))->send($template); +User::find('user_id')->notify(new BMailNotification('template_id')); ```