Joli\Jane\OpenApi\Generator\InputGeneratorTrait::createUrlStatements PHP Méthode

createUrlStatements() protected méthode

Create all statements around url transformation
protected createUrlStatements ( Joli\Jane\OpenApi\Operation\Operation $operation, PhpParser\Node\Expr\Variable $queryParamVariable ) : array
$operation Joli\Jane\OpenApi\Operation\Operation
$queryParamVariable PhpParser\Node\Expr\Variable
Résultat array
    protected function createUrlStatements(Operation $operation, $queryParamVariable)
    {
        $urlVariable = new Expr\Variable('url');
        // url = /path
        $statements = [new Expr\Assign($urlVariable, new Scalar\String_($operation->getPath()))];
        if ($operation->getOperation()->getParameters()) {
            foreach ($operation->getOperation()->getParameters() as $parameter) {
                if ($parameter instanceof Reference) {
                    $parameter = $this->getResolver()->resolve($parameter);
                }
                if ($parameter instanceof PathParameterSubSchema) {
                    // $url = str_replace('{param}', $param, $url)
                    $statements[] = new Expr\Assign($urlVariable, new Expr\FuncCall(new Name('str_replace'), [new Arg(new Scalar\String_('{' . $parameter->getName() . '}')), new Arg(new Expr\FuncCall(new Name('urlencode'), [new Arg(new Expr\Variable(Inflector::camelize($parameter->getName())))])), new Arg($urlVariable)]));
                }
            }
        }
        // url = url . ? . $queryParam->buildQueryString
        $statements[] = new Expr\Assign($urlVariable, new Expr\BinaryOp\Concat($urlVariable, new Expr\BinaryOp\Concat(new Scalar\String_('?'), new Expr\MethodCall($queryParamVariable, 'buildQueryString', [new Arg(new Expr\Variable('parameters'))]))));
        return [$statements, $urlVariable];
    }