feat(api): add portal_events to auth/me endpoint
Add persons() relationship to User model and include portal_events array in MeResource response, mapping each person record to its event and organisation data for the portal frontend. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -13,7 +13,12 @@ final class MeController extends Controller
|
||||
{
|
||||
public function __invoke(Request $request): JsonResponse
|
||||
{
|
||||
$user = $request->user()->load(['organisations', 'roles', 'permissions']);
|
||||
$user = $request->user()->load([
|
||||
'organisations',
|
||||
'roles',
|
||||
'permissions',
|
||||
'persons' => fn ($q) => $q->with(['event:id,name,slug,start_date,end_date,organisation_id', 'event.organisation:id,name']),
|
||||
]);
|
||||
|
||||
return $this->success(new MeResource($user));
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Http\Resources\Api\V1;
|
||||
|
||||
use App\Models\Person;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
@@ -31,6 +32,18 @@ final class MeResource extends JsonResource
|
||||
),
|
||||
'app_roles' => $this->getRoleNames()->values()->all(),
|
||||
'permissions' => $this->getAllPermissions()->pluck('name')->values()->all(),
|
||||
'portal_events' => $this->whenLoaded('persons', fn () =>
|
||||
$this->persons->map(fn (Person $person) => [
|
||||
'event_id' => $person->event_id,
|
||||
'event_name' => $person->event->name,
|
||||
'event_slug' => $person->event->slug,
|
||||
'organisation_name' => $person->event->organisation->name,
|
||||
'person_id' => $person->id,
|
||||
'person_status' => $person->status,
|
||||
'start_date' => $person->event->start_date?->toDateString(),
|
||||
'end_date' => $person->event->end_date?->toDateString(),
|
||||
])
|
||||
),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user