Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
Mohammad-Alavi committed Feb 1, 2025
1 parent 66632de commit 9cc672e
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 15 deletions.
4 changes: 2 additions & 2 deletions src/Abstract/Models/BaseModel.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
5 changes: 2 additions & 3 deletions src/Http/Resources/Collection.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
Expand All @@ -25,7 +24,7 @@ public function getResourceKey(): string
$resource = $resource->current();
}

if ($resource instanceof Resource) {
if ($resource instanceof ResourceKeyAware) {
return $resource->getResourceKey();
}

Expand Down
5 changes: 2 additions & 3 deletions src/Http/Resources/Item.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,17 @@

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
{
if (!is_null($this->resourceKey)) {
return $this->resourceKey;
}

if ($this->data instanceof Resource) {
if ($this->data instanceof ResourceKeyAware) {
return $this->data->getResourceKey();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?php

namespace Apiato\Contracts;
namespace Apiato\Http\Resources;

interface Resource
interface ResourceKeyAware
{
/**
* Get the resource key to be used for the response serialization.
Expand Down
10 changes: 5 additions & 5 deletions src/Http/Response.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public static function getRequestedIncludes(): array

public function createData(): Scope
{
$this->withResourceName($this->defaultResourceName());
$this->withResourceName($this->resourceKeyOrDefault());
$this->setAvailableIncludesMeta();

return parent::createData();
Expand All @@ -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
Expand Down

0 comments on commit 9cc672e

Please sign in to comment.