MediaTransformer.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Transformer\Api;
  3. use App\Media;
  4. use League\Fractal;
  5. class MediaTransformer extends Fractal\TransformerAbstract
  6. {
  7. public function transform(Media $media)
  8. {
  9. $res = [
  10. 'id' => (string) $media->id,
  11. 'type' => $media->activityVerb(),
  12. 'url' => $media->url(),
  13. 'remote_url' => null,
  14. 'preview_url' => $media->thumbnailUrl(),
  15. 'text_url' => null,
  16. 'meta' => null,
  17. 'description' => $media->caption,
  18. 'license' => $media->license,
  19. 'is_nsfw' => $media->is_nsfw,
  20. 'orientation' => $media->orientation,
  21. 'filter_name' => $media->filter_name,
  22. 'filter_class' => $media->version == 1 ? $media->filter_class : null,
  23. 'mime' => $media->mime,
  24. 'blurhash' => $media->blurhash
  25. ];
  26. if($media->width && $media->height) {
  27. $res['meta'] = [
  28. 'focus' => [
  29. 'x' => 0,
  30. 'y' => 0
  31. ],
  32. 'original' => [
  33. 'width' => $media->width,
  34. 'height' => $media->height,
  35. 'size' => "{$media->width}x{$media->height}",
  36. 'aspect' => $media->width / $media->height
  37. ]
  38. ];
  39. }
  40. return $res;
  41. }
  42. }