feat(api): add GET endpoint for crowd list persons
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -13,6 +13,7 @@ use App\Models\CrowdList;
|
||||
use App\Models\Event;
|
||||
use App\Models\Person;
|
||||
use App\Services\CrowdListService;
|
||||
use App\Http\Resources\Api\V1\PersonResource;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
@@ -62,6 +63,17 @@ final class CrowdListController extends Controller
|
||||
return response()->json(null, 204);
|
||||
}
|
||||
|
||||
public function persons(Event $event, CrowdList $crowdList): AnonymousResourceCollection
|
||||
{
|
||||
Gate::authorize('viewPersons', [$crowdList, $event]);
|
||||
|
||||
$persons = $crowdList->persons()
|
||||
->with(['crowdType', 'company', 'pendingIdentityMatch.matchedUser'])
|
||||
->paginate(50);
|
||||
|
||||
return PersonResource::collection($persons);
|
||||
}
|
||||
|
||||
public function addPerson(AddPersonToCrowdListRequest $request, Event $event, CrowdList $crowdList): JsonResponse
|
||||
{
|
||||
Gate::authorize('managePerson', [$crowdList, $event]);
|
||||
|
||||
@@ -41,6 +41,13 @@ final class PersonResource extends JsonResource
|
||||
];
|
||||
}
|
||||
),
|
||||
'crowd_list_pivot' => $this->when(
|
||||
$this->pivot && $this->pivot->added_at,
|
||||
fn () => [
|
||||
'added_at' => $this->pivot->added_at,
|
||||
'added_by_user_id' => $this->pivot->added_by_user_id,
|
||||
]
|
||||
),
|
||||
'tags' => $this->when(
|
||||
$this->user_id && $this->relationLoaded('user'),
|
||||
function () {
|
||||
|
||||
Reference in New Issue
Block a user