<?php namespace App\Fileshare\Resources; use App\Fileshare\ConnectionTypes\ConnectionType; use App\Fileshare\Models\Fileshare; use App\Lib\HasMeta; use Illuminate\Http\Resources\Json\JsonResource; /** * @mixin Fileshare */ class FileshareResource extends JsonResource { use HasMeta; /** * Transform the resource into an array. * * @param \Illuminate\Http\Request $request * @return array<string, mixed> */ public function toArray($request) { return [ 'name' => $this->name, 'is_active' => $this->type->check(), 'type' => get_class($this->type), 'config' => $this->type->toArray(), 'id' => $this->id, 'type_human' => $this->type::title(), 'links' => [ 'update' => route('fileshare.update', ['fileshare' => $this->getModel()]), ] ]; } /** * @return array<string, mixed> */ public static function meta(): array { return [ 'default' => [ 'name' => '', 'type' => null, 'config' => null, ], 'types' => ConnectionType::forSelect(), 'links' => [ 'store' => route('fileshare.store'), ] ]; } }