Skip to content

Commit c9ade08

Browse files
committed
wip
1 parent f40e08f commit c9ade08

File tree

7 files changed

+57
-19
lines changed

7 files changed

+57
-19
lines changed

src/Drivers/DriverInterface.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
namespace BeyondCode\Mailbox\Drivers;
4+
5+
interface DriverInterface
6+
{
7+
public function register();
8+
}

src/Drivers/Log.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,14 @@
66
use BeyondCode\Mailbox\Facades\Mailbox;
77
use Illuminate\Log\Events\MessageLogged;
88

9-
class Log
9+
class Log implements DriverInterface
1010
{
1111

12+
public function register()
13+
{
14+
app('events')->listen(MessageLogged::class, [$this, 'processLog']);
15+
}
16+
1217
public function processLog(MessageLogged $log)
1318
{
1419
$email = InboundEmail::fromMessage($log->message);

src/Drivers/Mailgun.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
namespace BeyondCode\Mailbox\Drivers;
4+
5+
use Illuminate\Support\Facades\Route;
6+
use BeyondCode\Mailbox\Http\Controllers\MailgunController;
7+
8+
class Mailgun implements DriverInterface
9+
{
10+
11+
public function register()
12+
{
13+
Route::prefix(config('mailbox.path'))->group(function () {
14+
Route::post('/mailgun/mime', MailgunController::class);
15+
});
16+
}
17+
}

src/MailboxManager.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
namespace BeyondCode\Mailbox;
44

55
use Illuminate\Support\Manager;
6+
use BeyondCode\Mailbox\Drivers\Log;
7+
use BeyondCode\Mailbox\Drivers\Mailgun;
68

79
class MailboxManager extends Manager
810
{
@@ -12,8 +14,18 @@ public function mailbox($name = null)
1214
return $this->driver($name);
1315
}
1416

17+
public function createLogDriver()
18+
{
19+
return new Log;
20+
}
21+
22+
public function createMailgunDriver()
23+
{
24+
return new Mailgun;
25+
}
26+
1527
public function getDefaultDriver()
1628
{
17-
return $this->app['config']['mailbox.default'];
29+
return $this->app['config']['mailbox.driver'];
1830
}
1931
}

src/MailboxServiceProvider.php

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public function boot()
2121
], 'migrations');
2222
}
2323

24-
$this->registerRoutes();
24+
$this->registerDriver();
2525
}
2626

2727
/**
@@ -34,21 +34,10 @@ public function register()
3434
$this->app->singleton('mailbox', function () {
3535
return new MailboxRouter($this->app);
3636
});
37-
38-
if (config('mail.driver') === 'log') {
39-
$this->registerLogDriver();
40-
}
41-
}
42-
43-
protected function registerLogDriver()
44-
{
45-
$this->app['events']->listen(MessageLogged::class, [new Log, 'processLog']);
4637
}
4738

48-
protected function registerRoutes()
39+
protected function registerDriver()
4940
{
50-
Route::prefix(config('mailbox.path'))->group(function () {
51-
Route::post('/mailgun/mime', MailgunController::class);
52-
});
41+
(new MailboxManager($this->app))->mailbox()->register();
5342
}
5443
}

tests/Controllers/MailgunTest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66

77
class MailgunTest extends TestCase
88
{
9+
protected function getEnvironmentSetUp($app)
10+
{
11+
parent::getEnvironmentSetUp($app);
12+
13+
$app['config']['mailbox.driver'] = 'mailgun';
14+
}
915

1016
/** @test */
1117
public function it_verifies_mailgun_signatures()

tests/Drivers/LogTest.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@
1111
class LogTest extends TestCase
1212
{
1313

14-
protected function getPackageProviders($app)
14+
protected function getEnvironmentSetUp($app)
1515
{
16-
$app['config']['mail.driver'] = 'log';
16+
parent::getEnvironmentSetUp($app);
1717

18-
return parent::getPackageProviders($app);
18+
$app['config']['mail.driver'] = 'log';
19+
$app['config']['mailbox.driver'] = 'log';
1920
}
2021

2122
/** @test */

0 commit comments

Comments
 (0)