feat: report reviews etc ...

This commit is contained in:
2026-05-23 12:15:11 +02:00
parent 49419c1e7b
commit 4af28f3828
15 changed files with 146 additions and 0 deletions
@@ -58,6 +58,22 @@ class PostReviewsController extends Controller
->setStatusCode(201);
}
public function mine(Request $request, MealPosts $mealPost): JsonResponse|PostReviewsResource
{
$this->abortIfUnavailable($mealPost);
$postReview = $mealPost->reviews()
->where('user_id', $request->user()->getKey())
->with('user:id,name,avatar_url')
->first();
if (! $postReview) {
return response()->json(['data' => null]);
}
return new PostReviewsResource($postReview);
}
public function show(PostReviews $postReview): PostReviewsResource
{
$postReview->loadMissing('mealPost.user');
+19
View File
@@ -6,6 +6,7 @@ use App\Enums\ReportReason;
use App\Http\Requests\StoreReportRequest;
use App\Http\Resources\ReportResource;
use App\Models\MealPosts;
use App\Models\PostReviews;
use App\Models\User;
use App\Services\ModerationReportService;
use Illuminate\Http\JsonResponse;
@@ -47,4 +48,22 @@ class ReportController extends Controller
->response()
->setStatusCode(201);
}
public function storePostReview(
StoreReportRequest $request,
PostReviews $postReview,
ModerationReportService $reports,
): JsonResponse {
$report = $reports->report(
reportable: $postReview,
reporter: $request->user(),
reason: ReportReason::from($request->validated('reason')),
details: $request->validated('details'),
);
return (new ReportResource($report))
->additional(['message' => __('api.reports.created')])
->response()
->setStatusCode(201);
}
}