50 lines
No EOL
1,021 B
PHP
50 lines
No EOL
1,021 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Http\Resources;
|
|
|
|
use Illuminate\Http\Resources\Json\JsonResource;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ApiResource extends JsonResource
|
|
{
|
|
public static $wrap = null;
|
|
|
|
protected bool $success = true;
|
|
protected string $message = 'Success';
|
|
protected ?array $meta = null;
|
|
|
|
public function success(bool $success): self
|
|
{
|
|
$this->success = $success;
|
|
return $this;
|
|
}
|
|
|
|
public function message(string $message): self
|
|
{
|
|
$this->message = $message;
|
|
return $this;
|
|
}
|
|
|
|
public function meta(array $meta): self
|
|
{
|
|
$this->meta = $meta;
|
|
return $this;
|
|
}
|
|
|
|
public function toArray(Request $request): array
|
|
{
|
|
$response = [
|
|
'success' => $this->success,
|
|
'message' => $this->message,
|
|
'data' => parent::toArray($request),
|
|
];
|
|
|
|
if ($this->meta) {
|
|
$response['meta'] = $this->meta;
|
|
}
|
|
|
|
return $response;
|
|
}
|
|
}
|