user(); if ($user === null) { return Response::error('Nicht authentifiziert.'); } if ($this->present($request->get('meetup_id'))) { $meetup = Meetup::find($request->get('meetup_id')); if ($meetup === null) { return Response::error('Meetup nicht gefunden.'); } } else { $meetup = $this->resolveGlobalByName(Meetup::query(), $request->get('meetup'), 'Meetups'); if ($meetup instanceof Response) { return $meetup; } } $wasAdded = $meetup->addMember($user); return Response::json([ 'meetup' => MeetupResource::make($meetup)->resolve(), 'message' => $wasAdded ? '„'.$meetup->name.'" wurde zu deinen Meetups hinzugefügt.' : '„'.$meetup->name.'" war bereits Teil deiner Meetups.', ]); } /** * @return array */ public function schema(JsonSchema $schema): array { return [ 'meetup' => $schema->string()->description('Name des bestehenden Meetups, das hinzugefügt werden soll (vorher per search-meetups ermitteln).'), 'meetup_id' => $schema->integer()->description('Optional: ID des Meetups, falls bereits bekannt (Alternative zu "meetup").'), ]; } }