diff --git a/src/Fields/Field.php b/src/Fields/Field.php index facbe820c..e7572142f 100644 --- a/src/Fields/Field.php +++ b/src/Fields/Field.php @@ -268,7 +268,7 @@ protected function fillAttributeFromRequest(RestifyRequest $request, $model, $at return; } - $bulkableAttribute = $bulkRow . '.' . $attribute; + $bulkableAttribute = $bulkRow.'.'.$attribute; if ($request->exists($bulkableAttribute) || $request->get($bulkableAttribute)) { $model->{$attribute} = $request[$bulkableAttribute] ?? $request->get($bulkableAttribute); diff --git a/src/Http/Controllers/RepositoryStoreBulkController.php b/src/Http/Controllers/RepositoryStoreBulkController.php index 526cbb606..4752cbb82 100644 --- a/src/Http/Controllers/RepositoryStoreBulkController.php +++ b/src/Http/Controllers/RepositoryStoreBulkController.php @@ -3,7 +3,6 @@ namespace Binaryk\LaravelRestify\Http\Controllers; use Binaryk\LaravelRestify\Http\Requests\RepositoryStoreBulkRequest; -use Binaryk\LaravelRestify\Http\Requests\RepositoryStoreRequest; class RepositoryStoreBulkController extends RepositoryController { diff --git a/src/Repositories/Repository.php b/src/Repositories/Repository.php index 09bd8295a..2d939f057 100644 --- a/src/Repositories/Repository.php +++ b/src/Repositories/Repository.php @@ -203,7 +203,7 @@ public static function newModel(): Model public static function query(RestifyRequest $request) { - if (!$request->isViaRepository()) { + if (! $request->isViaRepository()) { return static::newModel()->query(); } @@ -264,8 +264,8 @@ public function collectFields(RestifyRequest $request) if ($this instanceof Mergeable) { $fillable = collect($this->resource->getFillable()) - ->filter(fn($attribute) => $fields->contains('attribute', $attribute) === false) - ->map(fn($attribute) => Field::new($attribute)); + ->filter(fn ($attribute) => $fields->contains('attribute', $attribute) === false) + ->map(fn ($attribute) => Field::new($attribute)); $fields = $fields->merge($fillable); } @@ -276,14 +276,14 @@ public function collectFields(RestifyRequest $request) private function indexFields(RestifyRequest $request): Collection { return $this->collectFields($request) - ->filter(fn(Field $field) => !$field->isHiddenOnIndex($request, $this)) + ->filter(fn (Field $field) => ! $field->isHiddenOnIndex($request, $this)) ->values(); } private function showFields(RestifyRequest $request): Collection { return $this->collectFields($request) - ->filter(fn(Field $field) => !$field->isHiddenOnShow($request, $this)) + ->filter(fn (Field $field) => ! $field->isHiddenOnShow($request, $this)) ->values(); } @@ -390,10 +390,10 @@ public static function routes(Router $router, $attributes, $wrap = false) public function resolveShowAttributes(RestifyRequest $request) { $fields = $this->showFields($request) - ->filter(fn(Field $field) => $field->authorize($request)) - ->each(fn(Field $field) => $field->resolveForShow($this)) - ->map(fn(Field $field) => $field->serializeToValue($request)) - ->mapWithKeys(fn($value) => $value) + ->filter(fn (Field $field) => $field->authorize($request)) + ->each(fn (Field $field) => $field->resolveForShow($this)) + ->map(fn (Field $field) => $field->serializeToValue($request)) + ->mapWithKeys(fn ($value) => $value) ->all(); if ($this instanceof Mergeable) { @@ -411,7 +411,7 @@ public function resolveShowAttributes(RestifyRequest $request) return false; } - if (!$field->authorize($request)) { + if (! $field->authorize($request)) { return false; } @@ -432,10 +432,10 @@ public function resolveIndexAttributes($request) { // Resolve the show method, and attach the value to the array $fields = $this->indexFields($request) - ->filter(fn(Field $field) => $field->authorize($request)) - ->each(fn(Field $field) => $field->resolveForIndex($this)) - ->map(fn(Field $field) => $field->serializeToValue($request)) - ->mapWithKeys(fn($value) => $value) + ->filter(fn (Field $field) => $field->authorize($request)) + ->each(fn (Field $field) => $field->resolveForIndex($this)) + ->map(fn (Field $field) => $field->serializeToValue($request)) + ->mapWithKeys(fn ($value) => $value) ->all(); if ($this instanceof Mergeable) { @@ -453,7 +453,7 @@ public function resolveIndexAttributes($request) return false; } - if (!$field->authorize($request)) { + if (! $field->authorize($request)) { return false; } @@ -499,7 +499,7 @@ public function resolveRelationships($request): array /** * @var AbstractPaginator $paginator */ $paginator = $this->resource->{$relation}()->paginate($request->get('relatablePerPage') ?? (static::$defaultRelatablePerPage ?? RestifySearchable::DEFAULT_RELATABLE_PER_PAGE)); - $withs[$relation] = $paginator->getCollection()->map(fn(Model $item) => [ + $withs[$relation] = $paginator->getCollection()->map(fn (Model $item) => [ 'attributes' => $item->toArray(), ]); } @@ -555,10 +555,10 @@ public function index(RestifyRequest $request) return $this->response([ 'meta' => $this->resolveIndexMainMeta( - $request, $items->map(fn(self $repository) => $repository->resource), RepositoryCollection::meta($paginator->toArray()) + $request, $items->map(fn (self $repository) => $repository->resource), RepositoryCollection::meta($paginator->toArray()) ) ?? RepositoryCollection::meta($paginator->toArray()), 'links' => RepositoryCollection::paginationLinks($paginator->toArray()), - 'data' => $items->map(fn(self $repository) => $repository->serializeForIndex($request)), + 'data' => $items->map(fn (self $repository) => $repository->serializeForIndex($request)), ]); } @@ -590,7 +590,7 @@ public function store(RestifyRequest $request) $this->resource->save(); } - $this->storeFields($request)->each(fn(Field $field) => $field->invokeAfter($request, $this->resource)); + $this->storeFields($request)->each(fn (Field $field) => $field->invokeAfter($request, $this->resource)); }); static::stored($this->resource, $request); @@ -614,7 +614,7 @@ public function storeBulk(RepositoryStoreBulkRequest $request) $this->resource->save(); - $this->storeBulkFields($request)->each(fn(Field $field) => $field->invokeAfter($request, $this->resource)); + $this->storeBulkFields($request)->each(fn (Field $field) => $field->invokeAfter($request, $this->resource)); return $this->resource; }); @@ -646,8 +646,8 @@ public function update(RestifyRequest $request, $repositoryId) public function attach(RestifyRequest $request, $repositoryId, Collection $pivots) { DB::transaction(function () use ($request, $pivots) { - return $pivots->map(fn($pivot) => $pivot->forceFill($request->except($request->relatedRepository))) - ->map(fn($pivot) => $pivot->save()); + return $pivots->map(fn ($pivot) => $pivot->forceFill($request->except($request->relatedRepository))) + ->map(fn ($pivot) => $pivot->save()); }); return $this->response() @@ -658,7 +658,7 @@ public function attach(RestifyRequest $request, $repositoryId, Collection $pivot public function detach(RestifyRequest $request, $repositoryId, Collection $pivots) { $deleted = DB::transaction(function () use ($request, $pivots) { - return $pivots->map(fn($pivot) => $pivot->delete()); + return $pivots->map(fn ($pivot) => $pivot->delete()); }); return $this->response() @@ -752,7 +752,7 @@ public function response($content = '', $status = 200, array $headers = []): Res public function serializeForShow(RestifyRequest $request): array { return $this->filter([ - 'id' => $this->when($this->resource->id, fn() => $this->getShowId($request)), + 'id' => $this->when($this->resource->id, fn () => $this->getShowId($request)), 'type' => $this->when($type = $this->getType($request), $type), 'attributes' => $request->isShowRequest() ? $this->resolveShowAttributes($request) : $this->resolveIndexAttributes($request), 'relationships' => $this->when(value($related = $this->resolveRelationships($request)), $related), @@ -765,7 +765,7 @@ public function serializeForIndex(RestifyRequest $request): array return $this->filter([ 'id' => $this->when($id = $this->getShowId($request), $id), 'type' => $this->when($type = $this->getType($request), $type), - 'attributes' => $this->when((bool)$attrs = $this->resolveIndexAttributes($request), $attrs), + 'attributes' => $this->when((bool) $attrs = $this->resolveIndexAttributes($request), $attrs), 'relationships' => $this->when(value($related = $this->resolveRelationships($request)), $related), 'meta' => $this->when(value($meta = $this->resolveIndexMeta($request)), $meta), ]); @@ -813,15 +813,14 @@ protected static function fillBulkFields(RestifyRequest $request, Model $model, }); } - public static function uriTo(Model $model) { - return Restify::path() . '/' . static::uriKey() . '/' . $model->getKey(); + return Restify::path().'/'.static::uriKey().'/'.$model->getKey(); } public function availableFilters(RestifyRequest $request) { - return collect($this->filter($this->filters($request)))->each(fn(Filter $filter) => $filter->authorizedToSee($request)) + return collect($this->filter($this->filters($request)))->each(fn (Filter $filter) => $filter->authorizedToSee($request)) ->values(); } diff --git a/src/Repositories/ValidatingTrait.php b/src/Repositories/ValidatingTrait.php index 209940b88..9ac670c71 100644 --- a/src/Repositories/ValidatingTrait.php +++ b/src/Repositories/ValidatingTrait.php @@ -36,7 +36,7 @@ public static function validatorForStoring(RestifyRequest $request, array $plain $messages = $on->collectFields($request)->flatMap(function ($k) { $messages = []; foreach ($k->messages as $ruleFor => $message) { - $messages[$k->attribute . '.' . $ruleFor] = $message; + $messages[$k->attribute.'.'.$ruleFor] = $message; } return $messages; @@ -56,7 +56,7 @@ public static function validatorForStoringBulk(RestifyRequest $request, array $p $messages = $on->collectFields($request)->flatMap(function ($k) { $messages = []; foreach ($k->messages as $ruleFor => $message) { - $messages['*' . $k->attribute . '.' . $ruleFor] = $message; + $messages['*'.$k->attribute.'.'.$ruleFor] = $message; } return $messages; @@ -92,7 +92,7 @@ public static function validatorForUpdate(RestifyRequest $request, $resource = n $messages = $on->collectFields($request)->flatMap(function ($k) { $messages = []; foreach ($k->messages as $ruleFor => $message) { - $messages[$k->attribute . '.' . $ruleFor] = $message; + $messages[$k->attribute.'.'.$ruleFor] = $message; } return $messages; diff --git a/tests/Controllers/RepositoryStoreBulkControllerTest.php b/tests/Controllers/RepositoryStoreBulkControllerTest.php index 56a439ccc..1290b30b1 100644 --- a/tests/Controllers/RepositoryStoreBulkControllerTest.php +++ b/tests/Controllers/RepositoryStoreBulkControllerTest.php @@ -18,9 +18,9 @@ protected function setUp(): void public function test_basic_validation_works() { $this->postJson('/restify-api/posts/bulk', [ - [ - 'title' => null, - ] + [ + 'title' => null, + ], ]) ->assertStatus(400) ->assertJson([ @@ -44,12 +44,11 @@ public function test_unauthorized_store_bulk() [ 'title' => 'Title', 'description' => 'Title', - ] + ], ])->assertStatus(403) ->assertJson(['errors' => ['Unauthorized to store bulk.']]); } - public function test_user_can_bulk_create_posts() { $user = $this->mockUsers()->first(); @@ -62,7 +61,7 @@ public function test_user_can_bulk_create_posts() [ 'user_id' => $user->id, 'title' => 'Second post.', - ] + ], ]) ->assertStatus(201);