This commit is contained in:
Maxime Renou
2020-05-12 17:16:40 +02:00
parent f0a31cb9e8
commit 039beded65
8 changed files with 40 additions and 36 deletions

View File

@@ -1,5 +0,0 @@
<?php
namespace BMail;
class BMailException extends \Exception {}

View File

@@ -1,11 +1,12 @@
<?php
namespace BMail;
namespace Bluescale\Mail;
use Bluescale\Mail\BluescaleMailTemplate;
use GuzzleHttp\Client;
use Psr\Http\Message\StreamInterface;
class BMailApi
class BluescaleMailApi
{
/**
* The API key
@@ -20,7 +21,7 @@ class BMailApi
}
/**
* @param $template
* @param BluescaleMailTemplate $template
* @param $notifiable
* @return \Psr\Http\Message\StreamInterface
* @throws BMailException
@@ -57,7 +58,7 @@ class BMailApi
])->getBody();
} catch(\Exception $e) {
throw new BMailException($e->getMessage());
throw new BluescaleMailException($e->getMessage());
}
}
}

View File

@@ -1,11 +1,11 @@
<?php
namespace BMail;
namespace Bluescale\Mail;
use Illuminate\Notifications\Notification;
use Psr\Http\Message\StreamInterface;
class BMailChannel
class BluescaleMailChannel
{
/**
* @param $notifiable
@@ -13,10 +13,10 @@ class BMailChannel
* @return \Psr\Http\Message\StreamInterface
* @throws BMailException
*/
public function send($notifiable, Notification $notification): StreamInterface
public function send($notifiable, Notification $notification, BluescaleMailApi $api): StreamInterface
{
$template = $notification->toTemplate($notifiable);
return (new BMailApi(config("bmail.api_key")))->send($template, $notifiable);
return $api->send($template, $notifiable);
}
}

View File

@@ -0,0 +1,5 @@
<?php
namespace Bluescale\Mail;
class BluescaleMailException extends \Exception {}

View File

@@ -1,10 +1,10 @@
<?php
namespace BMail;
namespace Bluescale\Mail;
use Illuminate\Support\ServiceProvider;
class BMailServiceProvider extends ServiceProvider
class BluescaleMailServiceProvider extends ServiceProvider
{
/**
* Register any application services.
@@ -17,6 +17,10 @@ class BMailServiceProvider extends ServiceProvider
__DIR__ . '/../config/bmail.php',
'bmail'
);
$this->app->singleton(BluescaleMailApi::class, function ($app) {
return new BluescaleMailApi($app['config']['bmail']['api_key']);
});
}
/**

View File

@@ -1,8 +1,8 @@
<?php
namespace BMail;
namespace Bluescale\Mail;
class BMailTemplate implements \JsonSerializable
class BluescaleMailTemplate implements \JsonSerializable
{
/**
* The template for the message