visuddhinanda 2 роки тому
батько
коміт
c0f5ef1884
1 змінених файлів з 55 додано та 0 видалено
  1. 55 0
      app/Http/Resources/GroupResource.php

+ 55 - 0
app/Http/Resources/GroupResource.php

@@ -0,0 +1,55 @@
+<?php
+
+namespace App\Http\Resources;
+
+use Illuminate\Http\Resources\Json\JsonResource;
+use App\Models\GroupMember;
+use App\Http\Api\AuthApi;
+use App\Http\Api\StudioApi;
+
+class GroupResource 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,
+            'name' => $this->name,
+            'description' => $this->description,
+            'owner' => $this->owner,
+            "studio" => StudioApi::getById($this->owner),
+            'updated_at' => $this->updated_at,
+            'created_at' => $this->created_at
+        ];
+        $user = AuthApi::current($request);
+        if($user){
+            if($this->owner === $user['user_uid']){
+                $data['role'] = 'owner';
+            }else{
+                $power = GroupMember::where('user_id',$user['user_uid'])
+                                      ->where('group_id',$this->uid)
+                                      ->value('power');
+                switch ($power) {
+                    case 0:
+                        $data['role'] = 'owner';
+                        break;
+                    case 1:
+                        $data['role'] = 'manager';
+                        break;
+                    case 2:
+                        $data['role'] = 'member';
+                        break;
+                    default:
+                        $data['role'] = 'unknown';
+                        break;
+                }
+            }
+        }
+        return $data;
+    }
+}