open-orchestra/open-orchestra-front-bundle

View on GitHub
FrontBundle/HealthCheck/EsiTest.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace OpenOrchestra\FrontBundle\HealthCheck;

use OpenOrchestra\BaseBundle\HealthCheck\AbstractHealthCheckTest;
use OpenOrchestra\BaseBundle\HealthCheck\HealthCheckTestResultInterface;
use Symfony\Component\HttpFoundation\RequestStack;

/**
 * Class EsiTest
 */
class EsiTest extends AbstractHealthCheckTest
{
    protected $requestStack;

    /**
     * @param RequestStack $requestStack
     */
    public function __construct(RequestStack $requestStack)
    {
        $this->requestStack = $requestStack;
    }

    /**
     * @inheritdoc
     */
    public function run()
    {
        $label = "ESI support";
        $request = $this->requestStack->getMasterRequest();

        if (null === $request ||
            null === ($value = $request->headers->get('Surrogate-Capability')) ||
            false === strpos($value, 'ESI/1.0')
        ) {
            return $this->createTestResult(true, $label, HealthCheckTestResultInterface::WARNING);
        }

        return $this->createValidTestResult($label);
    }
}