From 0d922f223b2a4f4a9b2e3cf51402d3966be50b14 Mon Sep 17 00:00:00 2001 From: Leon Morival Date: Sun, 17 May 2026 15:51:01 +0200 Subject: [PATCH] feat: try fix test --- app/Http/Controllers/AuthController.php | 9 +++++---- app/Http/Requests/MealPostsRequest.php | 3 ++- app/Http/Resources/MealPostsResource.php | 17 +++++++++++++++-- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index d13c7ba..0045e8e 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -8,6 +8,7 @@ use App\Http\Requests\UpdateUserRequest; use App\Http\Resources\UserResource; use App\Models\User; use Illuminate\Http\JsonResponse; +use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Storage; @@ -65,7 +66,7 @@ class AuthController extends Controller ])->withoutCookie('token'); } - public function me(): JsonResponse + public function me(): JsonResource|JsonResponse { $user = auth()->user(); @@ -73,10 +74,10 @@ class AuthController extends Controller return response()->json(['message' => 'Non authentifié'], 401); } - return response()->json(new UserResource($user)); + return new UserResource($user); } - public function update(UpdateUserRequest $request): JsonResponse + public function update(UpdateUserRequest $request): JsonResource { $user = $request->user(); $data = $request->validated(); @@ -105,6 +106,6 @@ class AuthController extends Controller $user->update($data); } - return response()->json(new UserResource($user->fresh())); + return new UserResource($user->fresh()); } } diff --git a/app/Http/Requests/MealPostsRequest.php b/app/Http/Requests/MealPostsRequest.php index 4d5aecc..1f06a9d 100644 --- a/app/Http/Requests/MealPostsRequest.php +++ b/app/Http/Requests/MealPostsRequest.php @@ -13,7 +13,8 @@ class MealPostsRequest extends FormRequest $isCreating = $this->isMethod('post'); return [ - 'image' => ['sometimes', 'nullable', 'image', 'max:4096'], + 'image' => [$isCreating ? 'required_without:image_url' : 'sometimes', 'nullable', 'image', 'max:4096'], + 'image_url' => [$isCreating ? 'required_without:image' : 'sometimes', 'nullable', 'string', 'max:2048'], 'caption' => ['nullable', 'string', 'max:1000'], 'calories' => ['nullable', 'integer', 'min:0'], 'proteins' => ['nullable', 'numeric', 'min:0'], diff --git a/app/Http/Resources/MealPostsResource.php b/app/Http/Resources/MealPostsResource.php index ecf1b19..d52d399 100644 --- a/app/Http/Resources/MealPostsResource.php +++ b/app/Http/Resources/MealPostsResource.php @@ -2,11 +2,11 @@ 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; +use Illuminate\Support\Str; /** @mixin MealPosts */ class MealPostsResource extends JsonResource @@ -17,7 +17,7 @@ class MealPostsResource extends JsonResource return [ 'id' => $this->id, - 'imageUrl' => $this->image_url ? asset(Storage::url($this->image_url)) : null, + 'imageUrl' => $this->imageUrl(), 'caption' => $this->caption, 'calories' => $this->calories, 'proteins' => $this->proteins, @@ -36,4 +36,17 @@ class MealPostsResource extends JsonResource ], ]; } + + private function imageUrl(): ?string + { + if (! $this->image_url) { + return null; + } + + if (Str::startsWith($this->image_url, ['http://', 'https://'])) { + return $this->image_url; + } + + return asset(Storage::url($this->image_url)); + } }