GET http://optixs-2014.greendot.cz/api/api/purchases/session

Exceptions

No purchase in session

Exception

Symfony\Component\HttpKernel\Exception\ HttpException

Show exception properties
Symfony\Component\HttpKernel\Exception\HttpException {#1617
  -statusCode: 204
  -headers: []
}
  1. public function provide(Operation $operation, array $uriVariables = [], array $context = []): Purchase
  2. {
  3. $purchase = $this->purchaseRepository->findOneBySession('purchase');
  4. if (!$purchase) {
  5. throw new HttpException(Response::HTTP_NO_CONTENT, 'No purchase in session');
  6. }
  7. $this->managePurchase->preparePrices($purchase);
  8. $this->calculatedPricesService->makeCalculatedPricesForPurchaseWithVariants($purchase);
  1. }
  2. /** @var ProviderInterface $providerInstance */
  3. $providerInstance = $this->locator->get($provider);
  4. return $providerInstance->provide($operation, $uriVariables, $context);
  5. }
  6. throw new ProviderNotFoundException(\sprintf('Provider not found on operation "%s"', $operation->getName()));
  7. }
  8. }
  1. ]);
  2. $request->attributes->set('_api_normalization_context', $normalizationContext);
  3. }
  4. try {
  5. $data = $this->provider->provide($operation, $uriVariables, $context);
  6. } catch (ProviderNotFoundException $e) {
  7. // In case the dev just forgot to implement it
  8. $this->logger?->debug('No provider registered for {resource_class}', ['resource_class' => $resourceClass]);
  9. $data = null;
  10. }
  1. !($operation instanceof HttpOperation)
  2. || !($request = $context['request'] ?? null)
  3. || 'html' !== $request->getRequestFormat()
  4. || true === ($operation->getExtraProperties()['_api_disable_swagger_provider'] ?? false)
  5. ) {
  6. return $this->decorated->provide($operation, $uriVariables, $context);
  7. }
  8. if (!$request->attributes->has('_api_requested_operation')) {
  9. $request->attributes->set('_api_requested_operation', $operation);
  10. }
  1. default:
  2. $isGranted = $operation->getSecurity();
  3. $message = $operation->getSecurityMessage();
  4. }
  5. $body = $this->decorated->provide($operation, $uriVariables, $context);
  6. if (null === $isGranted) {
  7. return $body;
  8. }
  9. // On a GraphQl QueryCollection we want to perform security stage only on the top-level query
  1. {
  2. }
  3. public function provide(Operation $operation, array $uriVariables = [], array $context = []): object|array|null
  4. {
  5. $body = $this->decorated->provide($operation, $uriVariables, $context);
  6. $request = $context['request'] ?? null;
  7. $operation = $request?->attributes->get('_api_operation') ?? $operation;
  8. $parameters = $operation->getParameters() ?? new Parameters();
  1. // We need request content
  2. if (!$operation instanceof HttpOperation || !($request = $context['request'] ?? null)) {
  3. return $this->decorated?->provide($operation, $uriVariables, $context);
  4. }
  5. $data = $this->decorated ? $this->decorated->provide($operation, $uriVariables, $context) : $request->attributes->get('data');
  6. if (!$operation->canDeserialize() || $context['request']->attributes->has('deserialized')) {
  7. return $data;
  8. }
  1. default:
  2. $isGranted = $operation->getSecurity();
  3. $message = $operation->getSecurityMessage();
  4. }
  5. $body = $this->decorated->provide($operation, $uriVariables, $context);
  6. if (null === $isGranted) {
  7. return $body;
  8. }
  9. // On a GraphQl QueryCollection we want to perform security stage only on the top-level query
  1. {
  2. }
  3. public function provide(Operation $operation, array $uriVariables = [], array $context = []): object|array|null
  4. {
  5. $body = $this->decorated?->provide($operation, $uriVariables, $context) ?? ($context['request'] ?? null)?->attributes->get('data');
  6. if ($body instanceof Response || !$body) {
  7. return $body;
  8. }
  1. default:
  2. $isGranted = $operation->getSecurity();
  3. $message = $operation->getSecurityMessage();
  4. }
  5. $body = $this->decorated->provide($operation, $uriVariables, $context);
  6. if (null === $isGranted) {
  7. return $body;
  8. }
  9. // On a GraphQl QueryCollection we want to perform security stage only on the top-level query
  1. if (0 !== \count($constraintViolationList)) {
  2. throw new ValidationException($constraintViolationList);
  3. }
  4. return $this->decorated->provide($operation, $uriVariables, $context);
  5. }
  6. // There's a `property` inside Parameter but it's used for hydra:search only as here we want the parameter name instead
  7. private function getProperty(Parameter $parameter, ConstraintViolationInterface $violation): string
  8. {
  1. $request?->attributes->set('_api_operation', $operation);
  2. $context['operation'] = $operation;
  3. $this->stopwatch?->stop('api_platform.provider.parameter');
  4. return $this->decorated?->provide($operation, $uriVariables, $context);
  5. }
  6. /**
  7. * TODO: uriVariables could be a Parameters instance, it'd make things easier.
  8. *
  1. $this->addRequestFormats($request, $formats);
  2. $request->attributes->set('input_format', $this->getInputFormat($operation, $request));
  3. $request->setRequestFormat($this->getRequestFormat($request, $formats, !$isErrorOperation));
  4. $this->stopwatch?->stop('api_platform.provider.content_negotiation');
  5. return $this->decorated?->provide($operation, $uriVariables, $context);
  6. }
  7. /**
  8. * Adds the supported formats to the request.
  9. *
  1. || ('PUT' === $method && !($operation->getExtraProperties()['standard_put'] ?? true));
  2. $operation = $operation->withDenormalizationContext($denormalizationContext + [SerializerContextBuilderInterface::ASSIGN_OBJECT_TO_POPULATE => $assignObjectToPopulate]);
  3. }
  4. $body = $this->provider->provide($operation, $uriVariables, $context);
  5. // The provider can change the Operation, extract it again from the Request attributes
  6. if ($request->attributes->get('_api_operation') !== $operation) {
  7. $operation = $this->initializeOperation($request);
  1. $this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS);
  2. $controller = $event->getController();
  3. $arguments = $event->getArguments();
  4. // call controller
  5. $response = $controller(...$arguments);
  6. // view
  7. if (!$response instanceof Response) {
  8. $event = new ViewEvent($this, $request, $type, $response, $event);
  9. $this->dispatcher->dispatch($event, KernelEvents::VIEW);
  1. $request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
  2. $this->requestStack->push($request);
  3. $response = null;
  4. try {
  5. return $response = $this->handleRaw($request, $type);
  6. } catch (\Throwable $e) {
  7. if ($e instanceof \Error && !$this->handleAllThrowables) {
  8. throw $e;
  9. }
  1. if (!$this->handlingHttpCache) {
  2. $this->resetServices = true;
  3. }
  4. try {
  5. return $this->getHttpKernel()->handle($request, $type, $catch);
  6. } finally {
  7. --$this->requestStackSize;
  8. }
  9. }
  1. ) {
  2. }
  3. public function run(): int
  4. {
  5. $response = $this->kernel->handle($this->request);
  6. if (Kernel::VERSION_ID >= 60400) {
  7. $response->send(false);
  8. if (\function_exists('fastcgi_finish_request') && !$this->debug) {
in vendor/autoload_runtime.php -> run (line 29)
  1. $app = $app(...$args);
  2. exit(
  3. $runtime
  4. ->getRunner($app)
  5. ->run()
  6. );
require_once('/var/projects/optixs-2014/vendor/autoload_runtime.php') in public/index.php (line 5)
  1. <?php
  2. use App\Kernel;
  3. require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
  4. return function (array $context) {
  5. return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
  6. };

Logs

Level Channel Message
INFO 03:57:21 request Matched route "_profiler".
{
    "route": "_profiler",
    "route_parameters": {
        "_route": "_profiler",
        "_controller": "web_profiler.controller.profiler::panelAction",
        "token": "ad6e00"
    },
    "request_uri": "http://optixs-2014.greendot.cz/s/_profiler/ad6e00?panel=exception&type=request",
    "method": "GET"
}
INFO 03:57:21 doctrine Connecting with parameters {params}
{
    "params": {
        "use_savepoints": true,
        "driver": "pdo_mysql",
        "idle_connection_ttl": 600,
        "host": "127.0.0.1",
        "port": 3306,
        "user": "greendot",
        "password": "<redacted>",
        "driverOptions": [],
        "defaultTableOptions": {
            "collation": "utf8mb4_unicode_ci"
        },
        "dbname": "optixs-2024",
        "charset": "utf8mb4"
    }
}
DEBUG 03:57:21 doctrine Executing statement: SELECT c0_.id AS id_0, c0_.name AS name_1, c0_.symbol AS symbol_2, c0_.rounding AS rounding_3, c0_.is_default AS is_default_4, c0_.default_locale AS default_locale_5, c0_.is_symbol_left AS is_symbol_left_6, c0_.is_deleted AS is_deleted_7 FROM currency c0_ WHERE c0_.default_locale = ? LIMIT 1 (parameters: {params}, types: {types})
{
    "sql": "SELECT c0_.id AS id_0, c0_.name AS name_1, c0_.symbol AS symbol_2, c0_.rounding AS rounding_3, c0_.is_default AS is_default_4, c0_.default_locale AS default_locale_5, c0_.is_symbol_left AS is_symbol_left_6, c0_.is_deleted AS is_deleted_7 FROM currency c0_ WHERE c0_.default_locale = ? LIMIT 1",
    "params": {
        "1": "cs"
    },
    "types": {
        "1": 2
    }
}
DEBUG 03:57:21 doctrine Executing statement: SELECT t0.id AS id_1, t0.name AS name_2, t0.symbol AS symbol_3, t0.rounding AS rounding_4, t0.is_default AS is_default_5, t0.default_locale AS default_locale_6, t0.is_symbol_left AS is_symbol_left_7, t0.is_deleted AS is_deleted_8 FROM currency t0 WHERE t0.is_default = ? LIMIT 1 (parameters: {params}, types: {types})
{
    "sql": "SELECT t0.id AS id_1, t0.name AS name_2, t0.symbol AS symbol_3, t0.rounding AS rounding_4, t0.is_default AS is_default_5, t0.default_locale AS default_locale_6, t0.is_symbol_left AS is_symbol_left_7, t0.is_deleted AS is_deleted_8 FROM currency t0 WHERE t0.is_default = ? LIMIT 1",
    "params": {
        "1": 1
    },
    "types": {
        "1": 5
    }
}
DEBUG 03:57:21 security Checking for authenticator support.
{
    "firewall_name": "main",
    "authenticators": 6
}
DEBUG 03:57:21 security Checking support on authenticator.
{
    "firewall_name": "main",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 03:57:21 security Authenticator does not support the request.
{
    "firewall_name": "main",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 03:57:21 security Checking support on authenticator.
{
    "firewall_name": "main",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 03:57:21 security Authenticator does not support the request.
{
    "firewall_name": "main",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 03:57:21 security Checking support on authenticator.
{
    "firewall_name": "main",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 03:57:21 security Authenticator does not support the request.
{
    "firewall_name": "main",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 03:57:21 security Checking support on authenticator.
{
    "firewall_name": "main",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 03:57:21 security Authenticator does not support the request.
{
    "firewall_name": "main",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 03:57:21 security Checking support on authenticator.
{
    "firewall_name": "main",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 03:57:21 security Authenticator does not support the request.
{
    "firewall_name": "main",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 03:57:21 security Checking support on authenticator.
{
    "firewall_name": "main",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 03:57:21 security Authenticator does not support the request.
{
    "firewall_name": "main",
    "authenticator": "Symfony\\Component\\Security\\Http\\Authenticator\\Debug\\TraceableAuthenticator"
}
DEBUG 03:57:21 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure"
}
DEBUG 03:57:21 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest"
}
DEBUG 03:57:21 event Notified event "kernel.request" to listener "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bridge\\Doctrine\\Middleware\\IdleConnection\\Listener::onKernelRequest"
}
DEBUG 03:57:21 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest"
}
DEBUG 03:57:21 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale"
}
DEBUG 03:57:21 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest"
}
DEBUG 03:57:21 event Notified event "kernel.request" to listener "Greendot\EshopBundle\I18n\ApiLocaleListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Greendot\\EshopBundle\\I18n\\ApiLocaleListener::onKernelRequest"
}
DEBUG 03:57:21 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest"
}
DEBUG 03:57:21 event Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest"
}
DEBUG 03:57:21 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator"
}
DEBUG 03:57:21 event Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest"
}
DEBUG 03:57:21 event Notified event "kernel.request" to listener "Knp\Bundle\PaginatorBundle\Subscriber\SlidingPaginationSubscriber::onKernelRequest".
{
    "event": "kernel.request",
    "listener": "Knp\\Bundle\\PaginatorBundle\\Subscriber\\SlidingPaginationSubscriber::onKernelRequest"
}
DEBUG 03:57:21 doctrine Executing statement: SELECT s0_.value AS value_0 FROM settings s0_ WHERE s0_.name = ? ORDER BY s0_.name ASC LIMIT 1 (parameters: {params}, types: {types})
{
    "sql": "SELECT s0_.value AS value_0 FROM settings s0_ WHERE s0_.name = ? ORDER BY s0_.name ASC LIMIT 1",
    "params": {
        "1": "after_registration_discount"
    },
    "types": {
        "1": 2
    }
}
DEBUG 03:57:21 event Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController"
}
DEBUG 03:57:21 event Notified event "kernel.controller" to listener "Nzo\UrlEncryptorBundle\Annotations\AnnotationResolver::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Nzo\\UrlEncryptorBundle\\Annotations\\AnnotationResolver::onKernelController"
}
DEBUG 03:57:21 event Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController"
}
DEBUG 03:57:21 event Notified event "kernel.controller" to listener "Greendot\EshopBundle\EventSubscriber\BeforeControllerListener::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Greendot\\EshopBundle\\EventSubscriber\\BeforeControllerListener::onKernelController"
}
DEBUG 03:57:21 event Notified event "kernel.controller" to listener "Greendot\EshopBundle\EventSubscriber\DisableListenersSubscriber::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Greendot\\EshopBundle\\EventSubscriber\\DisableListenersSubscriber::onKernelController"
}
DEBUG 03:57:21 event Notified event "kernel.controller" to listener "Greendot\EshopBundle\EventSubscriber\AnonymousClientLogoutListener::onKernelController".
{
    "event": "kernel.controller",
    "listener": "Greendot\\EshopBundle\\EventSubscriber\\AnonymousClientLogoutListener::onKernelController"
}
DEBUG 03:57:21 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsCsrfTokenValidAttributeListener::onKernelControllerArguments"
}
DEBUG 03:57:21 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener::onKernelControllerArguments"
}
DEBUG 03:57:21 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelControllerArguments"
}
DEBUG 03:57:21 event Notified event "kernel.controller_arguments" to listener "ContainerKGzEc4C\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "ContainerKGzEc4C\\RequestPayloadValueResolverGhost01ca9cc::onKernelControllerArguments"
}
DEBUG 03:57:21 event Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments".
{
    "event": "kernel.controller_arguments",
    "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::onControllerArguments"
}

Stack Trace

HttpException
Symfony\Component\HttpKernel\Exception\HttpException:
No purchase in session

  at vendor/greendot/eshopbundle/src/StateProvider/PurchaseStateProvider.php:26
  at Greendot\EshopBundle\StateProvider\PurchaseStateProvider->provide()
     (vendor/api-platform/core/src/State/CallableProvider.php:43)
  at ApiPlatform\State\CallableProvider->provide()
     (vendor/api-platform/core/src/State/Provider/ReadProvider.php:84)
  at ApiPlatform\State\Provider\ReadProvider->provide()
     (vendor/api-platform/core/src/Symfony/Bundle/SwaggerUi/SwaggerUiProvider.php:50)
  at ApiPlatform\Symfony\Bundle\SwaggerUi\SwaggerUiProvider->provide()
     (vendor/api-platform/core/src/Symfony/Security/State/AccessCheckerProvider.php:62)
  at ApiPlatform\Symfony\Security\State\AccessCheckerProvider->provide()
     (vendor/api-platform/core/src/State/Provider/SecurityParameterProvider.php:50)
  at ApiPlatform\State\Provider\SecurityParameterProvider->provide()
     (vendor/api-platform/core/src/State/Provider/DeserializeProvider.php:60)
  at ApiPlatform\State\Provider\DeserializeProvider->provide()
     (vendor/api-platform/core/src/Symfony/Security/State/AccessCheckerProvider.php:62)
  at ApiPlatform\Symfony\Security\State\AccessCheckerProvider->provide()
     (vendor/api-platform/core/src/Symfony/Validator/State/ValidateProvider.php:32)
  at ApiPlatform\Symfony\Validator\State\ValidateProvider->provide()
     (vendor/api-platform/core/src/Symfony/Security/State/AccessCheckerProvider.php:62)
  at ApiPlatform\Symfony\Security\State\AccessCheckerProvider->provide()
     (vendor/api-platform/core/src/Symfony/Validator/State/ParameterValidatorProvider.php:101)
  at ApiPlatform\Symfony\Validator\State\ParameterValidatorProvider->provide()
     (vendor/api-platform/core/src/State/Provider/ParameterProvider.php:102)
  at ApiPlatform\State\Provider\ParameterProvider->provide()
     (vendor/api-platform/core/src/State/Provider/ContentNegotiationProvider.php:56)
  at ApiPlatform\State\Provider\ContentNegotiationProvider->provide()
     (vendor/api-platform/core/src/Symfony/Controller/MainController.php:94)
  at ApiPlatform\Symfony\Controller\MainController->__invoke()
     (vendor/symfony/http-kernel/HttpKernel.php:183)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
     (vendor/symfony/http-kernel/HttpKernel.php:76)
  at Symfony\Component\HttpKernel\HttpKernel->handle()
     (vendor/symfony/http-kernel/Kernel.php:193)
  at Symfony\Component\HttpKernel\Kernel->handle()
     (vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35)
  at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
     (vendor/autoload_runtime.php:29)
  at require_once('/var/projects/optixs-2014/vendor/autoload_runtime.php')
     (public/index.php:5)