SentenceAttachmentResource.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace App\Http\Resources;
  3. use Illuminate\Http\Resources\Json\JsonResource;
  4. use Illuminate\Support\Facades\Http;
  5. use Illuminate\Support\Facades\Log;
  6. use App\Models\Attachment;
  7. use Illuminate\Support\Facades\Storage;
  8. use Illuminate\Support\Facades\App;
  9. class SentenceAttachmentResource extends JsonResource
  10. {
  11. /**
  12. * Transform the resource into an array.
  13. *
  14. * @param \Illuminate\Http\Request $request
  15. * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
  16. */
  17. public function toArray($request)
  18. {
  19. $url = config('app.url') . '/api/v2/attachment/' . $this->attachment_id;
  20. Log::info($url);
  21. //$response = Http::get($url);
  22. $data = [
  23. 'uid' => $this->uid,
  24. 'sentence_id' => $this->sentence_id,
  25. 'attachment_id' => $this->attachment_id,
  26. 'attachment' => [],
  27. 'editor_id' => $this->editor_id,
  28. ];
  29. $res = Attachment::find($this->attachment_id);
  30. $filename = $res->bucket . '/' . $res->name;
  31. if (App::environment('local')) {
  32. $data['attachment']['url'] = Storage::url($filename);
  33. } else {
  34. $data['attachment']['url'] = Storage::temporaryUrl($filename, now()->addDays(2));
  35. }
  36. return $data;
  37. }
  38. }