mirror of
https://github.com/HolgerHatGarKeineNode/einundzwanzig-app.git
synced 2026-06-17 16:40:31 +00:00
✨ Add removeFromMine functionality to Meetups API for removing meetups from a user's "My Meetups" list
- 🔒 Introduce `removeFromMine` policy for authenticated users to remove meetups. - ✏️ Add `removeFromMine` method in `MeetupController` with idempotent handling. - ✨ Add `removeMember` utility in `Meetup` model for managing pivot relationships. - 🧪 Add feature tests for `removeFromMine`, covering idempotency, permissions, and unknown slugs. - 🌐 Register `removeFromMine` route in API and link it to `MeetupController`.
This commit is contained in:
@@ -144,6 +144,24 @@ class MeetupController extends Controller
|
||||
: \Symfony\Component\HttpFoundation\Response::HTTP_OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* Meetup aus „Meine Meetups" entfernen
|
||||
*
|
||||
* Entfernt ein Meetup aus der „Meine Meetups"-Liste des authentifizierten Nutzers
|
||||
* (löst die meetup_user-Pivot-Mitgliedschaft). Die Stammdaten des Meetups bleiben
|
||||
* erhalten — Gegenstück zu addToMine(). Idempotent: war das Meetup nicht (mehr)
|
||||
* zugeordnet, bleibt die Antwort 200 OK.
|
||||
*/
|
||||
#[Response(status: 401, description: 'Nicht authentifiziert.')]
|
||||
public function removeFromMine(Request $request, Meetup $meetup): MeetupResource
|
||||
{
|
||||
Gate::authorize('removeFromMine', $meetup);
|
||||
|
||||
$meetup->removeMember($request->user());
|
||||
|
||||
return MeetupResource::make($meetup);
|
||||
}
|
||||
|
||||
/**
|
||||
* Eigenes Meetup anzeigen
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user