Skip to content

Commit 712b32e

Browse files
committed
wip
1 parent caad41a commit 712b32e

File tree

6 files changed

+46
-42
lines changed

6 files changed

+46
-42
lines changed

src/MailboxServiceProvider.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace BeyondCode\Mailbox;
44

5+
use BeyondCode\Mailbox\Routing\Router;
56
use Illuminate\Support\ServiceProvider;
67

78
class MailboxServiceProvider extends ServiceProvider
@@ -28,7 +29,7 @@ public function register()
2829
$this->mergeConfigFrom(__DIR__.'/../config/mailbox.php', 'mailbox');
2930

3031
$this->app->singleton('mailbox', function () {
31-
return new MailboxRouter($this->app);
32+
return new Router($this->app);
3233
});
3334
}
3435

src/MailboxRoute.php renamed to src/Routing/Route.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
<?php
22

3-
namespace BeyondCode\Mailbox;
3+
namespace BeyondCode\Mailbox\Routing;
44

55
use BeyondCode\Mailbox\Concerns\HandlesParameters;
66
use BeyondCode\Mailbox\Concerns\HandlesRegularExpressions;
7+
use BeyondCode\Mailbox\InboundEmail;
78
use Illuminate\Container\Container;
89
use Illuminate\Routing\RouteDependencyResolverTrait;
910
use Illuminate\Support\Collection;
1011
use Illuminate\Support\Str;
1112
use ReflectionFunction;
1213
use ZBateson\MailMimeParser\Header\Part\AddressPart;
1314

14-
class MailboxRoute
15+
class Route
1516
{
1617
use HandlesParameters;
1718
use HandlesRegularExpressions;

src/MailboxRouteCollection.php renamed to src/Routing/RouteCollection.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
<?php
22

3-
namespace BeyondCode\Mailbox;
3+
namespace BeyondCode\Mailbox\Routing;
44

5+
use BeyondCode\Mailbox\InboundEmail;
56
use Illuminate\Support\Collection;
67

7-
class MailboxRouteCollection
8+
class RouteCollection
89
{
910
protected $routes = [];
1011

11-
public function add(MailboxRoute $route)
12+
public function add(Route $route)
1213
{
1314
$this->routes[] = $route;
1415
}

src/MailboxRouter.php renamed to src/Routing/Router.php

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
<?php
22

3-
namespace BeyondCode\Mailbox;
3+
namespace BeyondCode\Mailbox\Routing;
44

5+
use BeyondCode\Mailbox\InboundEmail;
56
use Illuminate\Container\Container;
67

7-
class MailboxRouter
8+
class Router
89
{
9-
/** @var MailboxRouteCollection */
10+
/** @var RouteCollection */
1011
protected $routes;
1112

1213
/** @var Container */
@@ -16,27 +17,27 @@ public function __construct(Container $container = null)
1617
{
1718
$this->container = $container ?: new Container;
1819

19-
$this->routes = new MailboxRouteCollection;
20+
$this->routes = new RouteCollection;
2021
}
2122

2223
public function from(string $pattern, $action)
2324
{
24-
$this->addRoute(MailboxRoute::FROM, $pattern, $action);
25+
$this->addRoute(Route::FROM, $pattern, $action);
2526
}
2627

2728
public function to(string $pattern, $action)
2829
{
29-
$this->addRoute(MailboxRoute::TO, $pattern, $action);
30+
$this->addRoute(Route::TO, $pattern, $action);
3031
}
3132

3233
public function cc(string $pattern, $action)
3334
{
34-
$this->addRoute(MailboxRoute::CC, $pattern, $action);
35+
$this->addRoute(Route::CC, $pattern, $action);
3536
}
3637

3738
public function subject(string $pattern, $action)
3839
{
39-
$this->addRoute(MailboxRoute::SUBJECT, $pattern, $action);
40+
$this->addRoute(Route::SUBJECT, $pattern, $action);
4041
}
4142

4243
protected function addRoute(string $subject, string $pattern, $action)
@@ -46,7 +47,7 @@ protected function addRoute(string $subject, string $pattern, $action)
4647

4748
protected function createRoute(string $subject, string $pattern, $action)
4849
{
49-
return (new MailboxRoute($subject, $pattern, $action))
50+
return (new Route($subject, $pattern, $action))
5051
->setContainer($this->container);
5152
}
5253

@@ -58,7 +59,7 @@ public function callMailboxes(InboundEmail $email)
5859
$this->storeEmail($email);
5960
}
6061

61-
$this->routes->match($email)->map(function (MailboxRoute $route) use ($email) {
62+
$this->routes->match($email)->map(function (Route $route) use ($email) {
6263
$route->run($email);
6364
});
6465
}

tests/MailboxRouteCollectionTest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@
44

55
use Zend\Mail\Message as TestMail;
66
use BeyondCode\Mailbox\InboundEmail;
7-
use BeyondCode\Mailbox\MailboxRoute;
8-
use BeyondCode\Mailbox\MailboxRouteCollection;
7+
use BeyondCode\Mailbox\Routing\Route;
8+
use BeyondCode\Mailbox\Routing\RouteCollection;
99

1010
class MailboxRouteCollectionTest extends TestCase
1111
{
1212
/** @test */
1313
public function it_returns_all_matching_mailbox_routes()
1414
{
15-
$collection = new MailboxRouteCollection();
15+
$collection = new RouteCollection();
1616

17-
$collection->add(new MailboxRoute(MailboxRoute::FROM, '[email protected]', ''));
18-
$collection->add(new MailboxRoute(MailboxRoute::FROM, '{from}@beyondco.de', ''));
19-
$collection->add(new MailboxRoute(MailboxRoute::FROM, '[email protected]', ''));
17+
$collection->add(new Route(Route::FROM, '[email protected]', ''));
18+
$collection->add(new Route(Route::FROM, '{from}@beyondco.de', ''));
19+
$collection->add(new Route(Route::FROM, '[email protected]', ''));
2020

2121
$testMail = (new TestMail())
2222
->setFrom('[email protected]');

tests/MailboxRouteTest.php

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use Zend\Mail\Message as TestMail;
66
use BeyondCode\Mailbox\InboundEmail;
7-
use BeyondCode\Mailbox\MailboxRoute;
7+
use BeyondCode\Mailbox\Routing\Route;
88

99
class MailboxRouteTest extends TestCase
1010
{
@@ -28,10 +28,10 @@ public function it_matches_from_mails($fromMail, $successfulPattern, $failingPat
2828

2929
$message = new InboundEmail(['message' => $testMail->toString()]);
3030

31-
$route = new MailboxRoute(MailboxRoute::FROM, $successfulPattern, 'SomeAction@handle');
31+
$route = new Route(Route::FROM, $successfulPattern, 'SomeAction@handle');
3232
$this->assertTrue($route->matches($message));
3333

34-
$route = new MailboxRoute(MailboxRoute::FROM, $failingPattern, 'SomeAction@handle');
34+
$route = new Route(Route::FROM, $failingPattern, 'SomeAction@handle');
3535
$this->assertFalse($route->matches($message));
3636
}
3737

@@ -46,10 +46,10 @@ public function it_matches_to_mails($toMail, $successfulPattern, $failingPattern
4646

4747
$message = new InboundEmail(['message' => $testMail->toString()]);
4848

49-
$route = new MailboxRoute(MailboxRoute::TO, $successfulPattern, 'SomeAction@handle');
49+
$route = new Route(Route::TO, $successfulPattern, 'SomeAction@handle');
5050
$this->assertTrue($route->matches($message));
5151

52-
$route = new MailboxRoute(MailboxRoute::TO, $failingPattern, 'SomeAction@handle');
52+
$route = new Route(Route::TO, $failingPattern, 'SomeAction@handle');
5353
$this->assertFalse($route->matches($message));
5454
}
5555

@@ -64,10 +64,10 @@ public function it_matches_cc_mails($ccMail, $successfulPattern, $failingPattern
6464

6565
$message = new InboundEmail(['message' => $testMail->toString()]);
6666

67-
$route = new MailboxRoute(MailboxRoute::CC, $successfulPattern, 'SomeAction@handle');
67+
$route = new Route(Route::CC, $successfulPattern, 'SomeAction@handle');
6868
$this->assertTrue($route->matches($message));
6969

70-
$route = new MailboxRoute(MailboxRoute::CC, $failingPattern, 'SomeAction@handle');
70+
$route = new Route(Route::CC, $failingPattern, 'SomeAction@handle');
7171
$this->assertFalse($route->matches($message));
7272
}
7373

@@ -82,10 +82,10 @@ public function it_matches_subjects($subject, $successfulPattern, $failingPatter
8282

8383
$message = new InboundEmail(['message' => $testMail->toString()]);
8484

85-
$route = new MailboxRoute(MailboxRoute::SUBJECT, $successfulPattern, 'SomeAction@handle');
85+
$route = new Route(Route::SUBJECT, $successfulPattern, 'SomeAction@handle');
8686
$this->assertTrue($route->matches($message));
8787

88-
$route = new MailboxRoute(MailboxRoute::SUBJECT, $failingPattern, 'SomeAction@handle');
88+
$route = new Route(Route::SUBJECT, $failingPattern, 'SomeAction@handle');
8989
$this->assertFalse($route->matches($message));
9090
}
9191

@@ -97,12 +97,12 @@ public function it_matches_requirements()
9797

9898
$message = new InboundEmail(['message' => $testMail->toString()]);
9999

100-
$route = new MailboxRoute(MailboxRoute::FROM, '{from}@domain.com', 'SomeAction@handle');
100+
$route = new Route(Route::FROM, '{from}@domain.com', 'SomeAction@handle');
101101
$route->where('from', '[0-9]+');
102102

103103
$this->assertFalse($route->matches($message));
104104

105-
$route = new MailboxRoute(MailboxRoute::FROM, '{from}@domain.com', 'SomeAction@handle');
105+
$route = new Route(Route::FROM, '{from}@domain.com', 'SomeAction@handle');
106106
$route->where('from', '[a-z]+');
107107

108108
$this->assertTrue($route->matches($message));
@@ -119,17 +119,17 @@ public function subjectDataProvider()
119119
/** @test */
120120
public function it_returns_parameter_names()
121121
{
122-
$route = new MailboxRoute(MailboxRoute::FROM, '[email protected]', 'SomeAction@handle');
122+
$route = new Route(Route::FROM, '[email protected]', 'SomeAction@handle');
123123

124124
$this->assertSame([], $route->parameterNames());
125125

126-
$route = new MailboxRoute(MailboxRoute::FROM, '{name}@domain.com', 'SomeAction@handle');
126+
$route = new Route(Route::FROM, '{name}@domain.com', 'SomeAction@handle');
127127

128128
$this->assertSame([
129129
'name',
130130
], $route->parameterNames());
131131

132-
$route = new MailboxRoute(MailboxRoute::FROM, '{name}@{domain}.{tld}', 'SomeAction@handle');
132+
$route = new Route(Route::FROM, '{name}@{domain}.{tld}', 'SomeAction@handle');
133133

134134
$this->assertSame([
135135
'name',
@@ -147,19 +147,19 @@ public function it_returns_parameter_values()
147147

148148
$message = new InboundEmail(['message' => $testMail->toString()]);
149149

150-
$route = new MailboxRoute(MailboxRoute::FROM, '[email protected]', 'SomeAction@handle');
150+
$route = new Route(Route::FROM, '[email protected]', 'SomeAction@handle');
151151
$route->matches($message);
152152

153153
$this->assertSame([], $route->parameters());
154154

155-
$route = new MailboxRoute(MailboxRoute::FROM, '{name}@foo.com', 'SomeAction@handle');
155+
$route = new Route(Route::FROM, '{name}@foo.com', 'SomeAction@handle');
156156
$route->matches($message);
157157

158158
$this->assertSame([
159159
'name' => 'my-email',
160160
], $route->parameters());
161161

162-
$route = new MailboxRoute(MailboxRoute::FROM, '{name}@{domain}.{tld}', 'SomeAction@handle');
162+
$route = new Route(Route::FROM, '{name}@{domain}.{tld}', 'SomeAction@handle');
163163
$route->matches($message);
164164

165165
$this->assertSame([
@@ -168,7 +168,7 @@ public function it_returns_parameter_values()
168168
'tld' => 'com',
169169
], $route->parameters());
170170

171-
$route = new MailboxRoute(MailboxRoute::SUBJECT, '{a}/{b}/{c}', 'SomeAction@handle');
171+
$route = new Route(Route::SUBJECT, '{a}/{b}/{c}', 'SomeAction@handle');
172172
$route->matches($message);
173173

174174
$this->assertSame([
@@ -186,7 +186,7 @@ public function it_runs_callables()
186186

187187
$message = new InboundEmail(['message' => $testMail->toString()]);
188188

189-
$route = new MailboxRoute(MailboxRoute::FROM, '[email protected]', function ($email) use ($message) {
189+
$route = new Route(Route::FROM, '[email protected]', function ($email) use ($message) {
190190
$this->assertSame($email, $message);
191191
});
192192

@@ -203,7 +203,7 @@ public function it_passes_parameters_to_callables()
203203

204204
$message = new InboundEmail(['message' => $testMail->toString()]);
205205

206-
$route = new MailboxRoute(MailboxRoute::FROM, '{name}@beyondco.de', function ($email, $name) {
206+
$route = new Route(Route::FROM, '{name}@beyondco.de', function ($email, $name) {
207207
$this->assertSame($name, 'marcel');
208208
});
209209

0 commit comments

Comments
 (0)