API Resources
This commit is contained in:
30
app/Http/Resources/ArticleResource.php
Normal file
30
app/Http/Resources/ArticleResource.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
use App\Http\Resources\SourceResource;
|
||||||
|
use App\Http\Resources\TopicResource;
|
||||||
|
|
||||||
|
class ArticleResource extends JsonResource
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Transform the resource into an array.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function toArray($request)
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
"id" => $this->id,
|
||||||
|
"title" => $this->title,
|
||||||
|
"author" => $this->author,
|
||||||
|
"featured_image" => $this->featured_image,
|
||||||
|
"body" => $this->body,
|
||||||
|
"source" => new SourceResource($this->source),
|
||||||
|
"topics" => TopicResource::collection($this->topics),
|
||||||
|
"published_date" => $this->published_date
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
24
app/Http/Resources/SourceResource.php
Normal file
24
app/Http/Resources/SourceResource.php
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
|
class SourceResource extends JsonResource
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Transform the resource into an array.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function toArray($request)
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
"name" => $this->name,
|
||||||
|
"slug" => $this->slug,
|
||||||
|
"logo" => $this->logo,
|
||||||
|
"url" => $this->url
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
22
app/Http/Resources/TopicResource.php
Normal file
22
app/Http/Resources/TopicResource.php
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
|
class TopicResource extends JsonResource
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Transform the resource into an array.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function toArray($request)
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
"name" => $this->name,
|
||||||
|
"slug" => $this->slug
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user