From d07b141b4014cbe3cc964da0ca03adf56185af3f Mon Sep 17 00:00:00 2001 From: HolgerHatGarKeineNode <123783602+HolgerHatGarKeineNode@users.noreply.github.com> Date: Sat, 13 Jun 2026 22:56:10 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Add=20`logo`=20field=20to=20meet?= =?UTF-8?q?ups=20API=20responses=20and=20fetch=20media=20relations=20for?= =?UTF-8?q?=20meetups?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ✏️ Updated `MeetupController` to include `with('media')` for meetups query. - 🖼️ Added `logo` to `MeetupResource` via `getFirstMediaUrl`. - 🧪 Extended feature tests to validate `logo` presence and type in API responses. --- app/Http/Controllers/Api/MeetupController.php | 1 + app/Http/Resources/MeetupResource.php | 1 + tests/Feature/Api/MeetupWriteApiTest.php | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/app/Http/Controllers/Api/MeetupController.php b/app/Http/Controllers/Api/MeetupController.php index eb068b8..4d07b47 100644 --- a/app/Http/Controllers/Api/MeetupController.php +++ b/app/Http/Controllers/Api/MeetupController.php @@ -115,6 +115,7 @@ class MeetupController extends Controller $meetups = $request->user() ->meetups() + ->with('media') ->orderBy('name') ->get(); diff --git a/app/Http/Resources/MeetupResource.php b/app/Http/Resources/MeetupResource.php index d9d10b7..a9515f2 100644 --- a/app/Http/Resources/MeetupResource.php +++ b/app/Http/Resources/MeetupResource.php @@ -32,6 +32,7 @@ class MeetupResource extends JsonResource 'community' => $this->community, 'visible_on_map' => $this->visible_on_map, 'is_active' => $this->is_active, + 'logo' => $this->getFirstMediaUrl('logo', 'thumb'), 'last_event_at' => $this->last_event_at, 'created_by' => $this->created_by, 'created_at' => $this->created_at, diff --git a/tests/Feature/Api/MeetupWriteApiTest.php b/tests/Feature/Api/MeetupWriteApiTest.php index b3d1392..85ca80e 100644 --- a/tests/Feature/Api/MeetupWriteApiTest.php +++ b/tests/Feature/Api/MeetupWriteApiTest.php @@ -87,6 +87,11 @@ it('returns the dashboard-selected meetups in mine index', function () { expect($ids) ->toContain(...$selected->pluck('id')->all()) ->not->toContain($unselected->id); + + collect($response->json('data'))->each( + fn ($meetup) => expect($meetup)->toHaveKey('logo') + ->and($meetup['logo'])->toBeString() + ); }); it('lets a pivot member view in mine show', function () {