Inheritance: extends Joli\Jane\OpenApi\Generator\Parameter\ParameterGenerator
Exemplo n.º 1
0
 /**
  * Create parameters for the method and their documentation
  *
  * @param Operation $operation
  * @param string[]  $queryParamDocumentation
  * @param 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];
 }