|
@@ -3,7 +3,9 @@
|
|
|
namespace App\Http\Controllers\API;
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
+use App\Models\Asset;
|
|
|
use App\Models\Enums\ActionObjectType;
|
|
|
+use App\Models\Project;
|
|
|
use App\Services\Folder\FoldersService;
|
|
|
use Illuminate\Http\JsonResponse;
|
|
|
|
|
@@ -14,20 +16,29 @@ class DocumentController extends Controller
|
|
|
$data = [
|
|
|
'type' => null,
|
|
|
'asset_id' => null,
|
|
|
+ 'asset_name' => null,
|
|
|
'project_id' => null,
|
|
|
+ 'project_name' => null,
|
|
|
'library_id' => null,
|
|
|
+ 'library_name' => null,
|
|
|
'container_id' => null,
|
|
|
+ 'container_name' => null,
|
|
|
'folder' => null,
|
|
|
'object_id' => intval($objectId),
|
|
|
'object_type' => $objectType,
|
|
|
+ 'object_name' => '',
|
|
|
];
|
|
|
- $model = ActionObjectType::from($objectType)->modelBuilder()->findOrFail($objectId);
|
|
|
+ $modelEnum = ActionObjectType::from($objectType);
|
|
|
+ $model = $modelEnum->modelBuilder()->findOrFail($objectId);
|
|
|
+ $data['object_name'] = $model->{$modelEnum->nameField()};
|
|
|
|
|
|
switch ($objectType) {
|
|
|
case ActionObjectType::CONTAINER_FILE->value:
|
|
|
$data['folder'] = (new FoldersService())->getAllParentTree($model->folder_id);
|
|
|
$data['container_id'] = $model->container?->id;
|
|
|
+ $data['container_name'] = $model->container?->name;
|
|
|
$data['library_id'] = $model->library?->id;
|
|
|
+ $data['library_name'] = $model->library?->name;
|
|
|
$data['asset_id'] = $model->library?->asset_id;
|
|
|
$data['project_id'] = $model->library?->project_id;
|
|
|
$data['type'] = $model->library?->type;
|
|
@@ -35,26 +46,46 @@ class DocumentController extends Controller
|
|
|
case ActionObjectType::FOLDER->value:
|
|
|
$data['folder'] = (new FoldersService())->getAllParentTree($model->id);
|
|
|
$data['container_id'] = $model->container?->id;
|
|
|
+ $data['container_name'] = $model->container?->name;
|
|
|
$data['library_id'] = $model->library?->id;
|
|
|
+ $data['library_name'] = $model->library?->name;
|
|
|
$data['asset_id'] = $model->library?->asset_id;
|
|
|
$data['project_id'] = $model->library?->project_id;
|
|
|
$data['type'] = $model->library?->type;
|
|
|
break;
|
|
|
case ActionObjectType::CONTAINER->value:
|
|
|
$data['container_id'] = $model->id;
|
|
|
+ $data['container_name'] = $model->name;
|
|
|
$data['library_id'] = $model->library?->id;
|
|
|
+ $data['library_name'] = $model->library?->name;
|
|
|
$data['asset_id'] = $model->library?->asset_id;
|
|
|
$data['project_id'] = $model->library?->project_id;
|
|
|
$data['type'] = $model->library?->type;
|
|
|
break;
|
|
|
case ActionObjectType::LIBRARY->value:
|
|
|
$data['library_id'] = $model->id;
|
|
|
+ $data['library_name'] = $model->name;
|
|
|
$data['asset_id'] = $model->asset_id;
|
|
|
$data['project_id'] = $model->project_id;
|
|
|
$data['type'] = $model->type;
|
|
|
+ break;
|
|
|
+ case ActionObjectType::PROJECT->value:
|
|
|
+ $data['project_id'] = $model->id;
|
|
|
+ $data['project_name'] = $model->name;
|
|
|
+ break;
|
|
|
+ case ActionObjectType::ASSET->value:
|
|
|
+ $data['asset_id'] = $model->id;
|
|
|
+ $data['asset_name'] = $model->name;
|
|
|
+ break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
+ if ($data['asset_id'] && ! $data['asset_name']) {
|
|
|
+ $data['asset_name'] = Asset::query()->findOrFail($data['asset_id'])->name;
|
|
|
+ }
|
|
|
+ if ($data['project_id'] && ! $data['project_name']) {
|
|
|
+ $data['project_name'] = Project::query()->findOrFail($data['project_id'])->name;
|
|
|
+ }
|
|
|
return $this->success(['data' => $data]);
|
|
|
}
|
|
|
}
|