api/app/Http/Resources/MealPostsResource.php

40 lines
1.1 KiB
PHP

<?php
namespace App\Http\Resources;
use App\Enums\MealPostVisibility;
use App\Models\MealPosts;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\Storage;
/** @mixin MealPosts */
class MealPostsResource extends JsonResource
{
public function toArray(Request $request): array
{
$user = $this->user;
return [
'id' => $this->id,
'imageUrl' => $this->image_url ? asset(Storage::url($this->image_url)) : null,
'caption' => $this->caption,
'calories' => $this->calories,
'proteins' => $this->proteins,
'carbs' => $this->carbs,
'fats' => $this->fats,
'title' => $this->title,
'visibility' => $this->visibility,
'eatenAt' => $this->eaten_at,
'createdAt' => $this->created_at,
'updatedAt' => $this->updated_at,
'user' => [
'name' => $user?->name,
'avatarUrl' => $user?->avatar_url ? asset(Storage::url($user->avatar_url)) : null,
'id' => $user->id,
],
];
}
}