Glendale.php 2.8 KB

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