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

createQueryParamStatements() protected method

Create the query param statements and documentation
protected createQueryParamStatements ( Joli\Jane\OpenApi\Operation\Operation $operation ) : array
$operation Joli\Jane\OpenApi\Operation\Operation
return array
    protected function createQueryParamStatements(Operation $operation)
    {
        $queryParamDocumentation = [];
        $queryParamVariable = new Expr\Variable('queryParam');
        $queryParamStatements = [new Expr\Assign($queryParamVariable, new Expr\New_(new Name('QueryParam')))];
        if ($operation->getOperation()->getParameters()) {
            foreach ($operation->getOperation()->getParameters() as $parameter) {
                if ($parameter instanceof Reference) {
                    $parameter = $this->getResolver()->resolve($parameter);
                }
                if ($parameter instanceof FormDataParameterSubSchema) {
                    $queryParamStatements = array_merge($queryParamStatements, $this->formDataParameterGenerator->generateQueryParamStatements($parameter, $queryParamVariable));
                    $queryParamDocumentation[] = $this->formDataParameterGenerator->generateQueryDocParameter($parameter);
                }
                if ($parameter instanceof HeaderParameterSubSchema) {
                    $queryParamStatements = array_merge($queryParamStatements, $this->headerParameterGenerator->generateQueryParamStatements($parameter, $queryParamVariable));
                    $queryParamDocumentation[] = $this->headerParameterGenerator->generateQueryDocParameter($parameter);
                }
                if ($parameter instanceof QueryParameterSubSchema) {
                    $queryParamStatements = array_merge($queryParamStatements, $this->queryParameterGenerator->generateQueryParamStatements($parameter, $queryParamVariable));
                    $queryParamDocumentation[] = $this->queryParameterGenerator->generateQueryDocParameter($parameter);
                }
            }
        }
        return [$queryParamDocumentation, $queryParamStatements, $queryParamVariable];
    }