|
@@ -0,0 +1,93 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\Services\File\BIM\Glendale;
|
|
|
+
|
|
|
+use App\Models\Enums\BimFileConvertStatus;
|
|
|
+use App\Services\File\BIM\Abstracts\BIMAbstract;
|
|
|
+use App\Services\File\BIM\BIMDriverEnum;
|
|
|
+use App\Services\File\BIM\Contacts\BIMContact;
|
|
|
+use Illuminate\Http\UploadedFile;
|
|
|
+use Illuminate\Support\Facades\Auth;
|
|
|
+use Ramsey\Uuid\Uuid;
|
|
|
+
|
|
|
+class Glendale extends BIMAbstract
|
|
|
+{
|
|
|
+
|
|
|
+ public function uploadFile(UploadedFile $file, array $params = [])
|
|
|
+ {
|
|
|
+ $uploadFormData = [
|
|
|
+ ['name' => 'file', 'contents' => fopen($file, 'r+'), 'filename' => $file->getClientOriginalName()]
|
|
|
+ ];
|
|
|
+
|
|
|
+ $result = Client::getInstance()->post('/api/app/model/upload-file', [
|
|
|
+ 'query' => [
|
|
|
+ 'input' => json_encode([
|
|
|
+ 'name' => $file->getClientOriginalName(),
|
|
|
+ 'initiatingUser' => Auth::user()->name,
|
|
|
+ 'uniqueCode' => Uuid::uuid4(),
|
|
|
+ 'priority' => 205,
|
|
|
+ 'isCAD' => $params['is_cad'],
|
|
|
+ "configJson" => ExtensionModelConfig::getConfigOption($params['extension']),
|
|
|
+ ])
|
|
|
+ ],
|
|
|
+ 'multipart' => $uploadFormData,
|
|
|
+ ]);
|
|
|
+
|
|
|
+ return [
|
|
|
+ 'bim_data_set_id' => $result['datas']['lightweightName'],
|
|
|
+ 'bim_file_id' => $result['datas']['lightweightName'],
|
|
|
+ 'bim_convert_status' => BimFileConvertStatus::IN_QUEUE->value,
|
|
|
+ 'bim_driver' => BIMDriverEnum::GLENDALE->value,
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function downloadSourceFile()
|
|
|
+ {
|
|
|
+ // TODO: Implement downloadSourceFile() method.
|
|
|
+ }
|
|
|
+
|
|
|
+ public function findConvertStatus(string $dataSetId): array
|
|
|
+ {
|
|
|
+ $result = Client::getInstance()->post('/api/app/model/query-model-info', [
|
|
|
+ 'query' => [
|
|
|
+ 'LightweightName' => $dataSetId
|
|
|
+ ]
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $getStatus = function($status) {
|
|
|
+ if ($status >= 1 && $status <= 99) {
|
|
|
+ return BimFileConvertStatus::CONVERTING->value;
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($status <= 0) {
|
|
|
+ return BimFileConvertStatus::FAILED_TO_ADD_QUEUE->value;
|
|
|
+ }
|
|
|
+
|
|
|
+ return BimFileConvertStatus::IN_QUEUE->value;
|
|
|
+ };
|
|
|
+
|
|
|
+ $status = match ($result['datas'][0]['status']) {
|
|
|
+ 0, 1, 101 => BimFileConvertStatus::IN_QUEUE->value,
|
|
|
+ 100 => BimFileConvertStatus::DONE->value,
|
|
|
+ default => $getStatus($result['datas'][0]['status'])
|
|
|
+ };
|
|
|
+
|
|
|
+ return $this->convertStatusFormat($status, $result['datas'][0]['status']);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function viewDataSetModel(array $dataSetIDS)
|
|
|
+ {
|
|
|
+ $result = Client::getInstance()->post('/api/app/model/query-model-info', [
|
|
|
+ 'query' => [
|
|
|
+ 'LightweightName' => $dataSetIDS[0]
|
|
|
+ ]
|
|
|
+ ]);
|
|
|
+
|
|
|
+ return $result['datas'] ?? [];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function addToConvertQueue(string $dataSetId): array
|
|
|
+ {
|
|
|
+ return [];
|
|
|
+ }
|
|
|
+}
|