|
@@ -12,6 +12,7 @@ use App\Http\Resources\API\FileUploadSuccessResource;
|
|
|
use App\Models\Enums\FileObjectType;
|
|
|
use App\Models\File;
|
|
|
use App\Models\Folder;
|
|
|
+use App\Services\File\BIM\BIMFactory;
|
|
|
use App\Services\File\DownloadService;
|
|
|
use App\Services\File\FileHideService;
|
|
|
use App\Services\File\Upload\FilesUploadService;
|
|
@@ -178,4 +179,27 @@ class FileController extends Controller
|
|
|
|
|
|
return $this->noContent();
|
|
|
}
|
|
|
+
|
|
|
+ public function bimView(string $id)
|
|
|
+ {
|
|
|
+ $file = File::query()->where('is_bim', 1)->findOrFail($id);
|
|
|
+
|
|
|
+ $fileObjectType = FileObjectType::from($file->object_type);
|
|
|
+ $object = $fileObjectType->modelBuilderAllowed($file->object_id)->find($file->object_id);
|
|
|
+ if(! $object){
|
|
|
+ return $this->badRequest(sprintf("File ID: %s, no permission to access", $file->id));
|
|
|
+ }
|
|
|
+
|
|
|
+ $bimFile = $file->bimFile;
|
|
|
+ $result = BIMFactory::make($bimFile->bim_driver)->viewDataSetModel([
|
|
|
+ $bimFile->bim_data_set_id
|
|
|
+ ]);
|
|
|
+
|
|
|
+ return $this->success([
|
|
|
+ 'data' => [
|
|
|
+ 'bim_driver' => $bimFile->bim_driver,
|
|
|
+ 'bim_view' => $result
|
|
|
+ ]
|
|
|
+ ]);
|
|
|
+ }
|
|
|
}
|