상속: extends Joli\Jane\OpenApi\Generator\Parameter\NonBodyParameterGenerator
예제 #1
0
 /**
  * Create the query param statements and documentation
  *
  * @param 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];
 }