فهرست منبع

add ArticleResource

visuddhinanda 3 سال پیش
والد
کامیت
a04bdf4f14
2فایلهای تغییر یافته به همراه39 افزوده شده و 1 حذف شده
  1. 2 1
      app/Http/Controllers/ArticleController.php
  2. 37 0
      app/Http/Resources/ArticleResource.php

+ 2 - 1
app/Http/Controllers/ArticleController.php

@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
 use App\Models\Article;
 use Illuminate\Http\Request;
 use Illuminate\Support\Str;
+use App\Http\Resources\ArticleResource;
 
 class ArticleController extends Controller
 {
@@ -146,7 +147,7 @@ class ArticleController extends Controller
                 return $this->error(__('auth.failed'));
             }
         }
-        return $this->ok($article);
+        return $this->ok(new ArticleResource($article));
     }
 
     /**

+ 37 - 0
app/Http/Resources/ArticleResource.php

@@ -0,0 +1,37 @@
+<?php
+
+namespace App\Http\Resources;
+
+use Illuminate\Http\Resources\Json\JsonResource;
+use App\Http\Api\MdRender;
+
+class ArticleResource extends JsonResource
+{
+    /**
+     * Transform the resource into an array.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
+     */
+    public function toArray($request)
+    {
+        $data = [
+            "uid" => $this->uid,
+            "title" => $this->title,
+            "subtitle" => $this->subtitle,
+            "summary" => $this->summary,
+            "studio"=> \App\Http\Api\StudioApi::getById($this->owner),
+            "editor"=> \App\Http\Api\UserApi::getById($this->editor_id),
+            "status" => $this->status,
+            "lang" => $this->lang,
+            "created_at" => $this->created_at,
+            "updated_at" => $this->updated_at,
+        ];
+        if(isset($this->content) && !empty($this->content)){
+            $data["content"] = $this->content;
+            $data["content_type"] = $this->content_type;
+            $data["html"] = MdRender::render($this->content,$request->get('channel'));
+        }
+        return $data;
+    }
+}