52 lines
1.9 KiB
PHP
52 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Opportunity;
|
|
use App\Services\PrivateOfferOperations;
|
|
use Illuminate\Http\Request;
|
|
use Inertia\Inertia;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
final class PrivateOfferOperationsController extends Controller
|
|
{
|
|
public function show(Request $request, int $id, PrivateOfferOperations $operations): Response
|
|
{
|
|
return response()->json($operations->presentation($request->user(), $id));
|
|
}
|
|
|
|
public function owner(Request $request, int $id, PrivateOfferOperations $operations): Response
|
|
{
|
|
$operations->ownerAction($request->user(), $id, $request->all());
|
|
|
|
return response()->json($operations->presentation($request->user(), $id));
|
|
}
|
|
|
|
public function reportForm(Request $request, int $id, PrivateOfferOperations $operations): Response
|
|
{
|
|
$record = Opportunity::findOrFail($id);
|
|
abort_unless($record->isPrivateOfferPreparation() && $operations->canReport($request->user(), $record), 404);
|
|
|
|
return Inertia::render('offers/report', ['offerId' => $id])->toResponse($request);
|
|
}
|
|
|
|
public function report(Request $request, int $id, PrivateOfferOperations $operations): Response
|
|
{
|
|
return response()->json($operations->report($request->user(), $id, $request->all()), 201);
|
|
}
|
|
|
|
public function handleReport(Request $request, int $id, string $reportId, PrivateOfferOperations $operations): Response
|
|
{
|
|
$operations->handleReport($request->user(), $id, $reportId, $request->all());
|
|
|
|
return response()->json($operations->presentation($request->user(), $id));
|
|
}
|
|
|
|
public function highlight(Request $request, int $id, PrivateOfferOperations $operations): Response
|
|
{
|
|
$operations->highlight($request->user(), $id, $request->all());
|
|
|
|
return response()->json($operations->presentation($request->user(), $id));
|
|
}
|
|
}
|