56 lines
2.3 KiB
PHP
56 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Services\PortalProfileInstallation;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
use Inertia\Inertia;
|
|
use Inertia\Response;
|
|
use Symfony\Component\HttpFoundation\Response as HttpResponse;
|
|
|
|
class PortalProfileInstallationController extends Controller
|
|
{
|
|
public function preview(Request $request, PortalProfileInstallation $installation): JsonResponse|Response
|
|
{
|
|
$plan = $installation->preview($request->user());
|
|
|
|
return $request->expectsJson() ? response()->json($plan) : Inertia::render('profiles/installation', $plan);
|
|
}
|
|
|
|
public function apply(Request $request, PortalProfileInstallation $installation): JsonResponse
|
|
{
|
|
return response()->json($installation->apply($request->user(), $request->all()));
|
|
}
|
|
|
|
public function supportPreview(Request $request, PortalProfileInstallation $installation): HttpResponse
|
|
{
|
|
$plan = $installation->supportPreview($request->user());
|
|
Inertia::encryptHistory();
|
|
|
|
return tap($request->expectsJson() ? response()->json($plan) : Inertia::render('profiles/support-installation', $plan)->toResponse($request), static fn (HttpResponse $response) => $response->headers->set('Cache-Control', 'private, no-store'));
|
|
}
|
|
|
|
public function applySupport(Request $request, PortalProfileInstallation $installation): JsonResponse
|
|
{
|
|
return response()->json($installation->applySupport($request->user(), $request->all()))->header('Cache-Control', 'private, no-store');
|
|
}
|
|
|
|
public function bootstrap(Request $request, PortalProfileInstallation $installation): JsonResponse
|
|
{
|
|
return response()->json($installation->bootstrap($request->user(), $request->all()));
|
|
}
|
|
|
|
public function bootstrapPreview(Request $request, string $id, PortalProfileInstallation $installation): JsonResponse|Response
|
|
{
|
|
$plan = $installation->bootstrapPreview($request->user(), $id);
|
|
|
|
return $request->expectsJson() ? response()->json($plan) : Inertia::render('profiles/bootstrap-confirmation', $plan);
|
|
}
|
|
|
|
public function confirmBootstrap(Request $request, string $id, PortalProfileInstallation $installation): JsonResponse
|
|
{
|
|
return response()->json($installation->confirmBootstrap($request->user(), $id, $request->all()));
|
|
}
|
|
}
|