Skip to content

Commit a88834f

Browse files
committed
feat(Middleware): resend middleware through enums
1 parent 26cd415 commit a88834f

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"php": "^8.3",
2020
"filament/filament": "^4.0",
2121
"illuminate/contracts": "^12.0",
22-
"resend/resend-laravel": "^0.22",
22+
"resend/resend-laravel": "^0.22.0",
2323
"spatie/laravel-package-tools": "^1.16"
2424
},
2525
"require-dev": {

src/Core/Enums/SupportedMailProvidersEnum.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,17 @@
22

33
namespace Basement\BetterMails\Core\Enums;
44

5+
use Basement\BetterMails\Resend\Email\Middleware\VerifyResendWebhookSignature;
6+
use Resend\Laravel\Http\Middleware\VerifyWebhookSignature;
7+
58
enum SupportedMailProvidersEnum: string
69
{
710
case Resend = 'resend';
11+
12+
public function getMiddleware(): array
13+
{
14+
return match ($this) {
15+
self::Resend => [VerifyWebhookSignature::class, VerifyResendWebhookSignature::class],
16+
};
17+
}
818
}

src/Core/Http/Controllers/WebhookController.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,18 @@
33
namespace Basement\BetterMails\Core\Http\Controllers;
44

55
use Basement\BetterMails\Core\Contracts\BetterDriverContract;
6+
use Basement\BetterMails\Core\Enums\SupportedMailProvidersEnum;
67
use Illuminate\Http\Request;
8+
use Illuminate\Routing\Controller;
79

8-
final class WebhookController
10+
final class WebhookController extends Controller
911
{
10-
public function __invoke(Request $request, BetterDriverContract $driver)
12+
public function __invoke(Request $request, BetterDriverContract $driver, string $provider)
1113
{
14+
$provider = SupportedMailProvidersEnum::tryFrom($provider);
15+
$this->middleware(
16+
$provider->getMiddleware(),
17+
);
1218
$driver->handle($request->all());
1319
}
1420
}

0 commit comments

Comments
 (0)