feat: app_debug to false and public user profiile controller
Laravel CI-CD / Tests Unitaires (push) Failing after 22s Details
Laravel CI-CD / Deploy with Kamal (push) Has been skipped Details

This commit is contained in:
Leon Morival 2026-05-21 16:47:16 +02:00
parent 26f24fcd07
commit 50ebc54551
3 changed files with 46 additions and 1 deletions

View File

@ -0,0 +1,43 @@
<?php
namespace App\Http\Controllers;
use App\Enums\MealPostVisibility;
use App\Http\Resources\MealPostsResource;
use App\Models\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class PublicUserProfileController extends Controller
{
public function show(Request $request, User $user): JsonResponse
{
$meals = $user->mealPosts()
->where('visibility', MealPostVisibility::Public->value)
->with('user:id,name,avatar_url,account_verified_at')
->latest('eaten_at')
->limit(18)
->get();
return response()->json([
'data' => [
'user' => [
'id' => $user->id,
'name' => $user->name,
'bio' => $user->bio,
'avatarUrl' => $user->avatar_url
? asset(Storage::url($user->avatar_url))
: null,
'accountVerified' => $user->account_verified_at !== null,
],
'stats' => [
'mealsCount' => $user->mealPosts()
->where('visibility', MealPostVisibility::Public->value)
->count(),
],
'meals' => MealPostsResource::collection($meals)->resolve($request),
],
]);
}
}

View File

@ -57,7 +57,7 @@ env:
clear:
APP_LOCALE: fr
APP_ENV: production
APP_DEBUG: "true"
APP_DEBUG: "false"
APP_URL: https://bemeal.leonmorival.com
SERVER_NAME: ":80"
APP_RUNTIME: "Laravel\\FrankenPHP\\Runtime"

View File

@ -5,6 +5,7 @@ use App\Http\Controllers\DeviceTokenController;
use App\Http\Controllers\MealImageAnalysisController;
use App\Http\Controllers\MealPostController;
use App\Http\Controllers\PostReviewsController;
use App\Http\Controllers\PublicUserProfileController;
use App\Http\Controllers\StravaController;
use App\Http\Controllers\WorkoutSessionController;
use Illuminate\Support\Facades\Route;
@ -53,6 +54,7 @@ Route::middleware(['auth:sanctum', 'verified'])->group(function (): void {
// Meals
Route::middleware(['auth:sanctum', 'verified'])->group(function (): void {
Route::get('users/{user}', [PublicUserProfileController::class, 'show'])->name('users.show');
Route::get('me/meal-posts', [MealPostController::class, 'mine'])->name('meal-posts.mine');
Route::get('meal-posts/stats', [MealPostController::class, 'stats']);
Route::get('meal-posts/calendar', [MealPostController::class, 'calendar']);