Skip to content

Commit cb4546a

Browse files
committed
refactor: standardize beforeSave, beforeStore & beforeUpdate hook signatures on relation resource controllers
1 parent f2da750 commit cb4546a

File tree

1 file changed

+28
-27
lines changed

1 file changed

+28
-27
lines changed

src/Concerns/HandlesRelationStandardOperations.php

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,6 @@ public function index(Request $request, $parentKey)
6969
*/
7070
public function store(Request $request, $parentKey)
7171
{
72-
$beforeHookResult = $this->beforeStore($request);
73-
if ($this->hookResponds($beforeHookResult)) {
74-
return $beforeHookResult;
75-
}
76-
7772
$resourceModelClass = $this->resolveResourceModelClass();
7873

7974
if ($this->authorizationRequired()) {
@@ -89,6 +84,11 @@ public function store(Request $request, $parentKey)
8984
$entity = new $resourceModelClass;
9085
$entity->fill($request->only($entity->getFillable()));
9186

87+
$beforeHookResult = $this->beforeStore($request, $entity);
88+
if ($this->hookResponds($beforeHookResult)) {
89+
return $beforeHookResult;
90+
}
91+
9292
$beforeSaveHookResult = $this->beforeSave($request, $entity);
9393
if ($this->hookResponds($beforeSaveHookResult)) {
9494
return $beforeSaveHookResult;
@@ -179,11 +179,6 @@ public function show(Request $request, $parentKey, $relatedKey = null)
179179
*/
180180
public function update(Request $request, $parentKey, $relatedKey = null)
181181
{
182-
$beforeHookResult = $this->beforeUpdate($request, $relatedKey);
183-
if ($this->hookResponds($beforeHookResult)) {
184-
return $beforeHookResult;
185-
}
186-
187182
$parentEntity = $this->queryBuilder->buildQuery($this->newModelQuery(), $request)
188183
->findOrFail($parentKey);
189184

@@ -203,6 +198,11 @@ public function update(Request $request, $parentKey, $relatedKey = null)
203198

204199
$entity->fill($request->only($entity->getFillable()));
205200

201+
$beforeHookResult = $this->beforeUpdate($request, $entity);
202+
if ($this->hookResponds($beforeHookResult)) {
203+
return $beforeHookResult;
204+
}
205+
206206
$beforeSaveHookResult = $this->beforeSave($request, $entity);
207207
if ($this->hookResponds($beforeSaveHookResult)) {
208208
return $beforeSaveHookResult;
@@ -247,11 +247,6 @@ public function update(Request $request, $parentKey, $relatedKey = null)
247247
*/
248248
public function destroy(Request $request, $parentKey, $relatedKey = null)
249249
{
250-
$beforeHookResult = $this->beforeDestroy($request, $relatedKey);
251-
if ($this->hookResponds($beforeHookResult)) {
252-
return $beforeHookResult;
253-
}
254-
255250
$parentEntity = $this->queryBuilder->buildQuery($this->newModelQuery(), $request)
256251
->findOrFail($parentKey);
257252

@@ -276,6 +271,11 @@ public function destroy(Request $request, $parentKey, $relatedKey = null)
276271
$this->authorize($forceDeletes ? 'forceDelete' : 'delete', $entity);
277272
}
278273

274+
$beforeHookResult = $this->beforeDestroy($request, $entity);
275+
if ($this->hookResponds($beforeHookResult)) {
276+
return $beforeHookResult;
277+
}
278+
279279
if (!$forceDeletes) {
280280
$entity->delete();
281281
} else {
@@ -306,11 +306,6 @@ public function destroy(Request $request, $parentKey, $relatedKey = null)
306306
*/
307307
public function restore(Request $request, $parentKey, $relatedKey = null)
308308
{
309-
$beforeHookResult = $this->beforeRestore($request, $relatedKey);
310-
if ($this->hookResponds($beforeHookResult)) {
311-
return $beforeHookResult;
312-
}
313-
314309
$parentEntity = $this->queryBuilder->buildQuery($this->newModelQuery(), $request)
315310
->findOrFail($parentKey);
316311

@@ -329,6 +324,11 @@ public function restore(Request $request, $parentKey, $relatedKey = null)
329324
$this->authorize('restore', $entity);
330325
}
331326

327+
$beforeHookResult = $this->beforeRestore($request, $entity);
328+
if ($this->hookResponds($beforeHookResult)) {
329+
return $beforeHookResult;
330+
}
331+
332332
$entity->restore();
333333

334334
$entity = $this->cleanupEntity($entity);
@@ -410,9 +410,10 @@ protected function afterIndex(Request $request, Paginator $entities)
410410
* The hook is executed before creating new relation resource.
411411
*
412412
* @param Request $request
413+
* @param Model $entity
413414
* @return mixed
414415
*/
415-
protected function beforeStore(Request $request)
416+
protected function beforeStore(Request $request, $entity)
416417
{
417418
return null;
418419
}
@@ -457,10 +458,10 @@ protected function afterShow(Request $request, $entity)
457458
* The hook is executed before updating a relation resource.
458459
*
459460
* @param Request $request
460-
* @param int|string|null $key
461+
* @param Model $entity
461462
* @return mixed
462463
*/
463-
protected function beforeUpdate(Request $request, $key)
464+
protected function beforeUpdate(Request $request, $entity)
464465
{
465466
return null;
466467
}
@@ -481,10 +482,10 @@ protected function afterUpdate(Request $request, $entity)
481482
* The hook is executed before deleting a relation resource.
482483
*
483484
* @param Request $request
484-
* @param int|string|null $key
485+
* @param Model $entity
485486
* @return mixed
486487
*/
487-
protected function beforeDestroy(Request $request, $key)
488+
protected function beforeDestroy(Request $request, $entity)
488489
{
489490
return null;
490491
}
@@ -505,10 +506,10 @@ protected function afterDestroy(Request $request, $entity)
505506
* The hook is executed before restoring a relation resource.
506507
*
507508
* @param Request $request
508-
* @param int|string|null $key
509+
* @param Model $entity
509510
* @return mixed
510511
*/
511-
protected function beforeRestore(Request $request, $key)
512+
protected function beforeRestore(Request $request, $entity)
512513
{
513514
return null;
514515
}

0 commit comments

Comments
 (0)