diff --git a/src/Abstract/Models/BaseModel.php b/src/Abstract/Models/BaseModel.php index 90def250..95492273 100644 --- a/src/Abstract/Models/BaseModel.php +++ b/src/Abstract/Models/BaseModel.php @@ -2,12 +2,12 @@ namespace Apiato\Abstract\Models; -use Apiato\Contracts\Resource; +use Apiato\Http\Resources\ResourceKeyAware; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model as LaravelEloquentModel; use Illuminate\Support\Str; -abstract class BaseModel extends LaravelEloquentModel implements Resource +abstract class BaseModel extends LaravelEloquentModel implements ResourceKeyAware { use HasFactory; diff --git a/src/Http/Resources/Collection.php b/src/Http/Resources/Collection.php index 97e60694..ad4bde00 100644 --- a/src/Http/Resources/Collection.php +++ b/src/Http/Resources/Collection.php @@ -2,10 +2,9 @@ namespace Apiato\Http\Resources; -use Apiato\Contracts\Resource; use League\Fractal\Resource\Collection as FractalCollection; -final class Collection extends FractalCollection +final class Collection extends FractalCollection implements ResourceKeyAware { public function getResourceKey(): string { @@ -25,7 +24,7 @@ public function getResourceKey(): string $resource = $resource->current(); } - if ($resource instanceof Resource) { + if ($resource instanceof ResourceKeyAware) { return $resource->getResourceKey(); } diff --git a/src/Http/Resources/Item.php b/src/Http/Resources/Item.php index e2397eb5..84023d11 100644 --- a/src/Http/Resources/Item.php +++ b/src/Http/Resources/Item.php @@ -2,10 +2,9 @@ namespace Apiato\Http\Resources; -use Apiato\Contracts\Resource; use League\Fractal\Resource\Item as FractalItem; -final class Item extends FractalItem +final class Item extends FractalItem implements ResourceKeyAware { public function getResourceKey(): string { @@ -13,7 +12,7 @@ public function getResourceKey(): string return $this->resourceKey; } - if ($this->data instanceof Resource) { + if ($this->data instanceof ResourceKeyAware) { return $this->data->getResourceKey(); } diff --git a/src/Contracts/Resource.php b/src/Http/Resources/ResourceKeyAware.php similarity index 70% rename from src/Contracts/Resource.php rename to src/Http/Resources/ResourceKeyAware.php index 99c36e2d..a44ea491 100644 --- a/src/Contracts/Resource.php +++ b/src/Http/Resources/ResourceKeyAware.php @@ -1,8 +1,8 @@ withResourceName($this->defaultResourceName()); + $this->withResourceName($this->resourceKeyOrDefault()); $this->setAvailableIncludesMeta(); return parent::createData(); @@ -62,14 +62,14 @@ public function getResourceClass(): string return parent::getResourceClass(); } - private function defaultResourceName(): string + private function resourceKeyOrDefault(): string { $resourceName = $this->getResourceName(); - if (!is_null($resourceName)) { - return $resourceName; + if (is_null($resourceName)) { + return $this->getResource()->getResourceKey(); } - return $this->getResource()->getResourceKey(); + return $resourceName; } private function setAvailableIncludesMeta(): void