denyUnlessSuperAdmin($request)) { return $denied; } $class = $this->resolveModel($request); if ($class instanceof Response) { return $class; } $record = $class::query()->find($request->get('id')); if ($record === null) { return Response::error('Datensatz mit ID '.$request->get('id').' in '.class_basename($class).' nicht gefunden.'); } $attributes = (array) ($request->get('attributes') ?? []); if ($attributes === []) { return Response::error('Bitte "attributes" mit den zu ändernden Feldern angeben.'); } if ($blocked = $this->rejectProtectedAttributes($attributes)) { return $blocked; } try { $record->forceFill($attributes)->save(); } catch (Throwable $e) { return Response::error('Aktualisieren fehlgeschlagen: '.$e->getMessage()); } return Response::json($record->fresh()->toArray()); } /** * @return array */ public function schema(JsonSchema $schema): array { return [ 'model' => $this->modelParameter($schema), 'id' => $schema->integer()->description('Primärschlüssel des zu ändernden Datensatzes.')->required(), 'attributes' => $schema->object()->description('Objekt {spalte: wert} mit den zu ändernden Feldern.')->required(), ]; } }