feat: try fix test
Laravel CI-CD / Tests Unitaires (push) Successful in 18s Details
Laravel CI-CD / Build & Push Docker (push) Successful in 1m58s Details
Laravel CI-CD / Deploy via Portainer (push) Failing after 1s Details

This commit is contained in:
Leon Morival 2026-05-17 15:51:01 +02:00
parent 26aeb356d8
commit 0d922f223b
3 changed files with 22 additions and 7 deletions

View File

@ -8,6 +8,7 @@ use App\Http\Requests\UpdateUserRequest;
use App\Http\Resources\UserResource; use App\Http\Resources\UserResource;
use App\Models\User; use App\Models\User;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
@ -65,7 +66,7 @@ class AuthController extends Controller
])->withoutCookie('token'); ])->withoutCookie('token');
} }
public function me(): JsonResponse public function me(): JsonResource|JsonResponse
{ {
$user = auth()->user(); $user = auth()->user();
@ -73,10 +74,10 @@ class AuthController extends Controller
return response()->json(['message' => 'Non authentifié'], 401); 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(); $user = $request->user();
$data = $request->validated(); $data = $request->validated();
@ -105,6 +106,6 @@ class AuthController extends Controller
$user->update($data); $user->update($data);
} }
return response()->json(new UserResource($user->fresh())); return new UserResource($user->fresh());
} }
} }

View File

@ -13,7 +13,8 @@ class MealPostsRequest extends FormRequest
$isCreating = $this->isMethod('post'); $isCreating = $this->isMethod('post');
return [ 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'], 'caption' => ['nullable', 'string', 'max:1000'],
'calories' => ['nullable', 'integer', 'min:0'], 'calories' => ['nullable', 'integer', 'min:0'],
'proteins' => ['nullable', 'numeric', 'min:0'], 'proteins' => ['nullable', 'numeric', 'min:0'],

View File

@ -2,11 +2,11 @@
namespace App\Http\Resources; namespace App\Http\Resources;
use App\Enums\MealPostVisibility;
use App\Models\MealPosts; use App\Models\MealPosts;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
/** @mixin MealPosts */ /** @mixin MealPosts */
class MealPostsResource extends JsonResource class MealPostsResource extends JsonResource
@ -17,7 +17,7 @@ class MealPostsResource extends JsonResource
return [ return [
'id' => $this->id, 'id' => $this->id,
'imageUrl' => $this->image_url ? asset(Storage::url($this->image_url)) : null, 'imageUrl' => $this->imageUrl(),
'caption' => $this->caption, 'caption' => $this->caption,
'calories' => $this->calories, 'calories' => $this->calories,
'proteins' => $this->proteins, '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));
}
} }