Glendale.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace App\Services\File\BIM\Glendale;
  3. use App\Models\Enums\BimFileConvertStatus;
  4. use App\Services\File\BIM\Abstracts\BIMAbstract;
  5. use App\Services\File\BIM\BIMDriverEnum;
  6. use App\Services\File\BIM\Contacts\BIMContact;
  7. use Illuminate\Http\UploadedFile;
  8. use Illuminate\Support\Facades\Auth;
  9. use Ramsey\Uuid\Uuid;
  10. class Glendale extends BIMAbstract
  11. {
  12. public function uploadFile(UploadedFile $file, array $params = [])
  13. {
  14. $uploadFormData = [
  15. ['name' => 'file', 'contents' => fopen($file, 'r+'), 'filename' => $file->getClientOriginalName()]
  16. ];
  17. $result = Client::getInstance()->post('/api/app/model/upload-file', [
  18. 'query' => [
  19. 'input' => json_encode([
  20. 'name' => $file->getClientOriginalName(),
  21. 'initiatingUser' => Auth::user()->name,
  22. 'uniqueCode' => Uuid::uuid4(),
  23. 'priority' => 205,
  24. 'isCAD' => $params['is_cad'],
  25. "configJson" => ExtensionModelConfig::getConfigOption($params['extension']),
  26. ])
  27. ],
  28. 'multipart' => $uploadFormData,
  29. ]);
  30. return [
  31. 'bim_data_set_id' => $result['datas']['lightweightName'],
  32. 'bim_file_id' => $result['datas']['lightweightName'],
  33. 'convert_status' => BimFileConvertStatus::IN_QUEUE->value,
  34. 'bim_driver' => BIMDriverEnum::GLENDALE->value,
  35. ];
  36. }
  37. public function downloadSourceFile()
  38. {
  39. // TODO: Implement downloadSourceFile() method.
  40. }
  41. public function findConvertStatus(string $dataSetId): array
  42. {
  43. $result = Client::getInstance()->post('/api/app/model/query-model-info', [
  44. 'query' => [
  45. 'LightweightName' => $dataSetId
  46. ]
  47. ]);
  48. $getStatus = function($status) {
  49. if ($status >= 1 && $status <= 99) {
  50. return BimFileConvertStatus::CONVERTING->value;
  51. }
  52. if ($status <= 0) {
  53. return BimFileConvertStatus::FAILED_TO_ADD_QUEUE->value;
  54. }
  55. return BimFileConvertStatus::IN_QUEUE->value;
  56. };
  57. $status = match ($result['datas'][0]['status']) {
  58. 0, 1, 101 => BimFileConvertStatus::IN_QUEUE->value,
  59. 100 => BimFileConvertStatus::DONE->value,
  60. default => $getStatus($result['datas'][0]['status'])
  61. };
  62. return $this->convertStatusFormat($status, $result['datas'][0]['status']);
  63. }
  64. public function viewDataSetModel(array $dataSetIDS)
  65. {
  66. $result = Client::getInstance()->post('/api/app/model/query-model-info', [
  67. 'query' => [
  68. 'LightweightName' => $dataSetIDS[0]
  69. ]
  70. ]);
  71. return $result['datas'] ?? [];
  72. }
  73. public function addToConvertQueue(string $dataSetId): array
  74. {
  75. return [];
  76. }
  77. }