diff --git a/src/Concerns/Respondable.php b/src/Concerns/Respondable.php index 5f55baa..8ce2f5b 100644 --- a/src/Concerns/Respondable.php +++ b/src/Concerns/Respondable.php @@ -7,8 +7,8 @@ trait Respondable { - protected function respond($data): Responsable + protected function respond($data, ?string $resourceClass = null): Responsable { - return app(Responder::class)->respond($data); + return app(Responder::class)->respond($data, $resourceClass); } } diff --git a/src/Responder.php b/src/Responder.php index 513ae94..152e4d1 100644 --- a/src/Responder.php +++ b/src/Responder.php @@ -62,9 +62,9 @@ public function respond($data, ?string $resourceClass = null): Responsable */ protected function respondForCollection(Collection $data, ?string $resourceClass) { - $modelClass = $this->modelResolver->resolve($data, 'collection'); - if (is_null($resourceClass)) { + $modelClass = $this->modelResolver->resolve($data, 'collection'); + $resourceClass = empty($modelClass) ? config('responder.default_resource', JsonResource::class) : $this->resourceResolver->resolve($modelClass); @@ -96,9 +96,9 @@ protected function respondForModel(Model $model, ?string $resourceClass) */ protected function respondForPaginator(LengthAwarePaginator $data, ?string $resourceClass) { - $modelClass = $this->modelResolver->resolve($data, 'paginator'); - if (is_null($resourceClass)) { + $modelClass = $this->modelResolver->resolve($data, 'paginator'); + $resourceClass = empty($modelClass) ? config('responder.default_resource', JsonResource::class) : $this->resourceResolver->resolve($modelClass);