user(); if ($user === null || Gate::forUser($user)->denies('create', Venue::class)) { return Response::error('Nicht berechtigt, einen Veranstaltungsort anzulegen.'); } $storeRequest = new StoreVenueRequest; $validated = $request->validate( $storeRequest->rules(), $storeRequest->messages(), ); $venue = Venue::create($validated); return Response::json(VenueResource::make($venue->fresh())->resolve()); } /** * @return array */ public function schema(JsonSchema $schema): array { return [ 'city_id' => $schema->integer()->description('ID der zugehörigen Stadt (vorher per search-cities auflösen).')->required(), 'name' => $schema->string()->description('Name des Veranstaltungsorts.')->required(), 'street' => $schema->string()->description('Straße und Hausnummer des Veranstaltungsorts.')->required(), ]; } }