Joli\Jane\OpenApi\Generator\InputGeneratorTrait::createHeaderStatements PHP Method

createHeaderStatements() protected method

Create headers statements
protected createHeaderStatements ( Joli\Jane\OpenApi\Operation\Operation $operation, PhpParser\Node\Expr\Variable $queryParamVariable ) : array
$operation Joli\Jane\OpenApi\Operation\Operation
$queryParamVariable PhpParser\Node\Expr\Variable
return array
    protected function createHeaderStatements(Operation $operation, $queryParamVariable)
    {
        $headerVariable = new Expr\Variable('headers');
        $headers = [new Expr\ArrayItem(new Scalar\String_($operation->getHost()), new Scalar\String_('Host'))];
        $produces = $operation->getOperation()->getProduces();
        if ($produces && in_array("application/json", $produces)) {
            $headers[] = new Expr\ArrayItem(new Expr\Array_([new Expr\ArrayItem(new Scalar\String_("application/json"))]), new Scalar\String_('Accept'));
        }
        $consumes = $operation->getOperation()->getProduces();
        if ($operation->getOperation()->getParameters() && $consumes) {
            $bodyParameters = array_filter($operation->getOperation()->getParameters(), function ($parameter) {
                return $parameter instanceof BodyParameter;
            });
            if (count($bodyParameters) > 0 && in_array("application/json", $consumes)) {
                $headers[] = new Expr\ArrayItem(new Scalar\String_("application/json"), new Scalar\String_('Content-Type'));
            }
        }
        return [[new Expr\Assign($headerVariable, new Expr\FuncCall(new Name('array_merge'), [new Arg(new Expr\Array_($headers)), new Arg(new Expr\MethodCall($queryParamVariable, 'buildHeaders', [new Arg(new Expr\Variable('parameters'))]))]))], $headerVariable];
    }