File tree Expand file tree Collapse file tree 3 files changed +30
-0
lines changed Expand file tree Collapse file tree 3 files changed +30
-0
lines changed Original file line number Diff line number Diff line change 66use Illuminate \Http \RedirectResponse ;
77use Illuminate \Routing \Controller ;
88use Illuminate \Support \Facades \Response ;
9+ use OpenSoutheners \LaravelModelPermalink \Events \PermalinkGotAccessed ;
910
1011class ModelPermalinkController extends Controller
1112{
@@ -26,6 +27,8 @@ public function __invoke(string $permalink): RedirectResponse
2627
2728 $ this ->authorize ('viewModelPermalink ' , $ permalink ->model );
2829
30+ event (new PermalinkGotAccessed ($ permalink ->model ));
31+
2932 return Response::redirectTo ($ permalink ->model ->getPermalink ());
3033 }
3134}
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace OpenSoutheners \LaravelModelPermalink \Events ;
4+
5+ use Illuminate \Queue \SerializesModels ;
6+ use OpenSoutheners \LaravelModelPermalink \PermalinkAccess ;
7+
8+ class PermalinkGotAccessed
9+ {
10+ use SerializesModels;
11+
12+ /**
13+ * Create a new event instance.
14+ *
15+ * @return void
16+ */
17+ public function __construct (public PermalinkAccess $ model )
18+ {
19+ //
20+ }
21+ }
Original file line number Diff line number Diff line change 33namespace OpenSoutheners \LaravelModelPermalink \Tests ;
44
55use Illuminate \Foundation \Auth \User ;
6+ use Illuminate \Support \Facades \Event ;
67use Illuminate \Support \Facades \Route ;
8+ use OpenSoutheners \LaravelModelPermalink \Events \PermalinkGotAccessed ;
79use OpenSoutheners \LaravelModelPermalink \GeneratePermalink ;
810use OpenSoutheners \LaravelModelPermalink \Tests \Fixtures \Post ;
911
@@ -53,8 +55,12 @@ public function testAnyUserCanAccessAnyModelPermalinkByDefault()
5355
5456 $ modelPermalink = GeneratePermalink::for ($ post );
5557
58+ Event::fake (PermalinkGotAccessed::class);
59+
5660 $ response = $ this ->get ($ modelPermalink ->getModelPermalink ());
5761
62+ Event::assertDispatched (PermalinkGotAccessed::class, fn (PermalinkGotAccessed $ event ) => $ event ->model ->is ($ post ));
63+
5864 $ response ->assertRedirectToRoute ('posts.show ' , $ post );
5965
6066 $ redirectedResponse = $ this ->followRedirects ($ response ->baseResponse );
You can’t perform that action at this time.
0 commit comments