Glendale.php 2.8 KB

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