Files
exchange-2.0/app/Http/Resources/DocumentResource.php
T
2023-08-25 08:36:31 +08:00

54 lines
1.7 KiB
PHP

<?php
namespace App\Http\Resources;
use App\Models\Booking;
use App\Models\Company;
use App\Models\Document;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
class DocumentResource extends JsonResource
{
// protected $userInfo;
// public function userInfo($resource, $userInfo = null)
// {
// $this->userInfo = $userInfo;
// }
private static $userInfo;
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
//cief todo: remove
// Log::error('DocumentResource 1: '. json_encode(self::$userInfo));
// Log::error('DocumentResource 2: '. json_encode($this->relationLoaded('owner')));
return [
'id' => $this->id,
'reference' => $this->reference,
'status' => (int) $this->status,
'document_type' => $this->document_type,
'owner' => $this->relationLoaded('owner') ? ($this->owner instanceof Booking ? new BookingResource($this->owner, self::$userInfo) : new CompanyResource($this->owner, self::$userInfo)) : null,
'files' => FileResource::collection($this->files),
'created_at' => Carbon::parse($this->created_at)->format('d-m-Y h:i:s A')
];
}
public static function customResourceCollection($resource, $userInfo): AnonymousResourceCollection
{
self::$userInfo = $userInfo;
return parent::collection($resource);
}
}