Kaynağa Gözat

container list

moell 10 ay önce
ebeveyn
işleme
cc7ba44dd9

+ 5 - 2
app/Http/Controllers/API/ContainerController.php

@@ -5,6 +5,7 @@ namespace App\Http\Controllers\API;
 use App\Http\Controllers\Controller;
 use App\Http\Requests\API\Container\CreateOrUpdateRequest;
 use App\Http\Resources\API\ContainerDetailResource;
+use App\Http\Resources\API\ContainerResource;
 use App\Models\Container;
 use App\Models\ContainerContent;
 use App\Models\Enums\ActionObjectType;
@@ -24,9 +25,11 @@ class ContainerController extends Controller
     /**
      * Display a listing of the resource.
      */
-    public function index()
+    public function index(Request $request)
     {
-        //
+        $containers = Container::query()->filter($request->all())->paginate();
+
+        return ContainerResource::collection($containers);
     }
 
     /**

+ 1 - 0
app/Http/Resources/API/ContainerDetailResource.php

@@ -21,6 +21,7 @@ class ContainerDetailResource extends JsonResource
             'name' => $content?->name,
             'library' => new LibrarySimpleResource($this->library),
             'naming_rule' => new NamingRuleSimpleResource($this->namingRule),
+            'naming_rules' => $this->naming_rules,
             "mailto"  => $this->mailto,
             "email_subject"  => $this->email_subject,
             "doc_stage"  => $this->doc_stage,

+ 32 - 0
app/Http/Resources/API/ContainerResource.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace App\Http\Resources\API;
+
+use Illuminate\Http\Request;
+use Illuminate\Http\Resources\Json\JsonResource;
+
+class ContainerResource extends JsonResource
+{
+    /**
+     * Transform the resource into an array.
+     *
+     * @return array<string, mixed>
+     */
+    public function toArray(Request $request): array
+    {
+        $content = $this->content($request->get("version", 0))->first();
+
+        return [
+            'id' => $this->id,
+            'name' => $content?->name,
+            'library' => new LibrarySimpleResource($this->library),
+            'naming_rule' => new NamingRuleSimpleResource($this->namingRule),
+            'naming_rules' => $this->naming_rules,
+            "doc_stage"  => $this->doc_stage,
+            "doc_type"  => $this->doc_type,
+            "version" => $this->version,
+            "created_at"  => (string)$this->created_at,
+            "created_by" => new UserProfileResource($this->createdBy),
+        ];
+    }
+}

+ 2 - 1
app/Models/Container.php

@@ -3,6 +3,7 @@
 namespace App\Models;
 
 use App\Models\Scopes\CompanyScope;
+use EloquentFilter\Filterable;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Database\Eloquent\Model;
@@ -10,7 +11,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
 
 class Container extends Model
 {
-    use HasFactory, SoftDeletes;
+    use HasFactory, SoftDeletes, Filterable;
 
     protected $fillable = [
         'name', 'library_id', 'naming_rule_id', 'naming_rules', 'mailto', 'email_subject', 'acl', 'whitelist',