Skip to content

Commit 2c4271f

Browse files
committed
fix: tidy batch actions
1 parent 1d192e5 commit 2c4271f

File tree

1 file changed

+18
-35
lines changed

1 file changed

+18
-35
lines changed

src/Http/Api/Contracts/HasBatchActions.php

Lines changed: 18 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,31 @@
22

33
namespace Phpsa\LaravelApiController\Http\Api\Contracts;
44

5+
use Illuminate\Http\Request;
56
use Illuminate\Support\Collection;
67
use Illuminate\Support\Facades\DB;
78
use Phpsa\LaravelApiController\Events\Created;
89
use Phpsa\LaravelApiController\Events\Updated;
10+
use Illuminate\Http\Resources\Json\JsonResource;
11+
use Illuminate\Http\Resources\Json\ResourceCollection;
912
use Phpsa\LaravelApiController\Exceptions\ApiException;
1013
use Illuminate\Database\Eloquent\ModelNotFoundException;
14+
use Phpsa\LaravelApiController\Http\Resources\ApiResource;
1115

1216
trait HasBatchActions
1317
{
1418

19+
protected function getBatchKey(): string
20+
{
21+
return isset($this->batchKey) ? $this->batchKey : 'data';
22+
}
23+
1524
public function getBatchData(): Collection
1625
{
17-
return collect($this->getRequestArray()['data'] ?? []);
26+
return collect($this->getRequestArray()[$this->getBatchKey()] ?? []);
1827
}
1928

20-
/**
21-
* @param \Illuminate\Http\Request|\Illuminate\Foundation\Http\FormRequest $request
22-
* @param array $extraParams
23-
*
24-
* @return mixed
25-
*/
26-
public function handleBatchStoreAction($request, array $extraParams = [])
29+
public function handleBatchStoreAction(?Request $request, array $extraParams = []): ResourceCollection|JsonResource
2730
{
2831
$this->validateRequestType($request);
2932
$this->addCustomParams($extraParams);
@@ -66,12 +69,7 @@ protected function processStoreQuery(Collection $items): Collection
6669
});
6770
}
6871

69-
/**
70-
* @param \Illuminate\Http\Request|\Illuminate\Foundation\Http\FormRequest $request
71-
*
72-
* @return mixed
73-
*/
74-
public function handleBatchUpdateAction($request, array $extraParams = [])
72+
public function handleBatchUpdateAction(?Request $request, array $extraParams = []): ResourceCollection|JsonResource
7573
{
7674
$this->validateRequestType($request);
7775
$this->addCustomParams($extraParams);
@@ -127,12 +125,7 @@ protected function processUpdateQuery(Collection $items): Collection
127125
}
128126

129127

130-
/**
131-
* @param \Illuminate\Http\Request|\Illuminate\Foundation\Http\FormRequest $request
132-
*
133-
* @return mixed
134-
*/
135-
public function handleBatchStoreOrUpdateAction($request, array $extraParams = [])
128+
public function handleBatchStoreOrUpdateAction(?Request $request = null, array $extraParams = []): ResourceCollection|JsonResource
136129
{
137130
$this->validateRequestType($request);
138131
$this->addCustomParams($extraParams);
@@ -168,27 +161,17 @@ public function handleBatchStoreOrUpdateAction($request, array $extraParams = []
168161
}
169162

170163

171-
172-
/**
173-
* @return mixed Response|jsonResponse
174-
*/
175-
protected function handleBatchStoreResponse(Collection $items)
164+
protected function handleBatchStoreResponse(Collection $items): ResourceCollection|JsonResource
176165
{
177-
return $this->respondWithResource($this->/** @scrutinizer ignore-call */getResourceCollection(), $items, 201);
166+
return $this->respondWithResource($this->getResourceCollection(), $items, 201);
178167
}
179168

180-
/**
181-
* @return mixed Response|jsonResponse
182-
*/
183-
protected function handleBatchUpdateResponse(Collection $items)
169+
protected function handleBatchUpdateResponse(Collection $items): ResourceCollection|JsonResource
184170
{
185-
return $this->respondWithResource($this->/** @scrutinizer ignore-call */getResourceCollection(), $items, 200);
171+
return $this->respondWithResource($this->getResourceCollection(), $items, 200);
186172
}
187173

188-
/**
189-
* @return mixed Response|jsonResponse
190-
*/
191-
protected function handleBatchStoreOrUpdateResponse(Collection $items)
174+
protected function handleBatchStoreOrUpdateResponse(Collection $items): ResourceCollection|JsonResource
192175
{
193176
return $this->respondWithResource($this->getResourceCollection(), $items, 200);
194177
}

0 commit comments

Comments
 (0)