123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?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'],
- '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 [];
- }
- }
|