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

createParameters() protected method

Create parameters for the method and their documentation
protected createParameters ( Joli\Jane\OpenApi\Operation\Operation $operation, string[] $queryParamDocumentation, Joli\Jane\Generator\Context\Context $context ) : array
$operation Joli\Jane\OpenApi\Operation\Operation
$queryParamDocumentation string[]
$context Joli\Jane\Generator\Context\Context
return array
    protected function createParameters(Operation $operation, $queryParamDocumentation, Context $context)
    {
        $documentationParams = [];
        $methodParameters = [];
        if ($operation->getOperation()->getParameters()) {
            foreach ($operation->getOperation()->getParameters() as $parameter) {
                if ($parameter instanceof Reference) {
                    $parameter = $this->getResolver()->resolve($parameter);
                }
                if ($parameter instanceof PathParameterSubSchema) {
                    $methodParameters[] = $this->pathParameterGenerator->generateMethodParameter($parameter, $context);
                    $documentationParams[] = sprintf(' * @param %s', $this->pathParameterGenerator->generateDocParameter($parameter, $context));
                }
            }
            foreach ($operation->getOperation()->getParameters() as $parameter) {
                if ($parameter instanceof Reference) {
                    $parameter = $this->getResolver()->resolve($parameter);
                }
                if ($parameter instanceof BodyParameter) {
                    $methodParameters[] = $this->bodyParameterGenerator->generateMethodParameter($parameter, $context);
                    $documentationParams[] = sprintf(' * @param %s', $this->bodyParameterGenerator->generateDocParameter($parameter, $context));
                }
            }
        }
        if (!empty($queryParamDocumentation)) {
            $documentationParams[] = " * @param array  \$parameters {";
            $documentationParams = array_merge($documentationParams, array_map(function ($doc) {
                return " *     " . $doc;
            }, $queryParamDocumentation));
            $documentationParams[] = " * }";
        } else {
            $documentationParams[] = " * @param array  \$parameters List of parameters";
        }
        $documentationParams[] = " * @param string \$fetch      Fetch mode (object or response)";
        $methodParameters[] = new Param('parameters', new Expr\Array_());
        $methodParameters[] = new Param('fetch', new Expr\ConstFetch(new Name('self::FETCH_OBJECT')));
        return [$documentationParams, $methodParameters];
    }