Files
daily-meal-api/app/Http/Controllers/ReportController.php
T
leonm 8b60283eeb
CI / 🧪 Tests Laravel (push) Successful in 2m34s
CI / 🐳 Build & Push Images (push) Successful in 2m26s
feat: translation codes
2026-08-14 12:46:29 +02:00

70 lines
2.0 KiB
PHP

<?php
namespace App\Http\Controllers;
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;
class ReportController extends Controller
{
public function storeMealPost(
StoreReportRequest $request,
MealPosts $mealPost,
ModerationReportService $reports,
): JsonResponse {
$report = $reports->report(
reportable: $mealPost,
reporter: $request->user(),
reason: ReportReason::from($request->validated('reason')),
details: $request->validated('details'),
);
return (new ReportResource($report))
->additional(['code' => 'REPORT_CREATED'])
->response()
->setStatusCode(201);
}
public function storeUser(
StoreReportRequest $request,
User $user,
ModerationReportService $reports,
): JsonResponse {
$report = $reports->report(
reportable: $user,
reporter: $request->user(),
reason: ReportReason::from($request->validated('reason')),
details: $request->validated('details'),
);
return (new ReportResource($report))
->additional(['code' => 'REPORT_CREATED'])
->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(['code' => 'REPORT_CREATED'])
->response()
->setStatusCode(201);
}
}