From f9f58596b8ab3cb840513ebd35efbdf730c688d3 Mon Sep 17 00:00:00 2001 From: nmonterroso Date: Thu, 18 Jun 2015 16:51:24 -0700 Subject: [PATCH] account for return type where the response type is in a list container, and properly import models into operations --- .../codegen/languages/PhpClientCodegen.java | 29 ++++++++++++++++++- .../src/main/resources/php/api.mustache | 9 ++++-- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PhpClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PhpClientCodegen.java index af4867108a8..ad9ca3aa9b1 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PhpClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PhpClientCodegen.java @@ -10,9 +10,12 @@ import io.swagger.models.properties.MapProperty; import io.swagger.models.properties.Property; import java.io.File; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; public class PhpClientCodegen extends DefaultCodegen implements CodegenConfig { @@ -244,7 +247,31 @@ public class PhpClientCodegen extends DefaultCodegen implements CodegenConfig { @Override public Map postProcessOperations(Map objs) { - return addNamespaces(super.postProcessOperations(objs)); + objs = addNamespaces(super.postProcessOperations(objs)); + + if (objs.containsKey("imports")) { + List> imports = new ArrayList>(); + LinkedHashMap newImport; + String currentImport; + String modelName; + + for (Map importMap : (List>) objs.get("imports")) { + currentImport = importMap.get("import"); + modelName = currentImport.replace(modelPackage + ".", ""); + + if (reservedWords.contains(modelName)) { + continue; + } + + newImport = new LinkedHashMap(); + newImport.put("import", modelNamespace + "\\" + modelName); + imports.add(newImport); + } + + objs.put("imports", imports); + } + + return objs; } @Override diff --git a/modules/swagger-codegen/src/main/resources/php/api.mustache b/modules/swagger-codegen/src/main/resources/php/api.mustache index 5d84e0541da..5798ef6f882 100644 --- a/modules/swagger-codegen/src/main/resources/php/api.mustache +++ b/modules/swagger-codegen/src/main/resources/php/api.mustache @@ -25,6 +25,10 @@ namespace {{apiNamespace}}; use {{invokerNamespace}}\Configuration; use {{invokerNamespace}}\ApiClient; +{{#imports}} +use {{{import}}}; +{{/imports}} + {{#operations}} class {{classname}} { @@ -65,7 +69,7 @@ class {{classname}} { * {{{summary}}} * {{#allParams}} * @param {{dataType}} ${{paramName}} {{description}} {{^optional}}(required){{/optional}}{{#optional}}(optional){{/optional}} -{{/allParams}} * @return {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}} +{{/allParams}} * @return {{#returnType}}{{#isListContainer}}{{returnBaseType}}[]{{/isListContainer}}{{^isListContainer}}{{{returnType}}}{{/isListContainer}}{{/returnType}}{{^returnType}}void{{/returnType}} */ public function {{nickname}}({{#allParams}}${{paramName}}{{#optional}}=null{{/optional}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) { {{#allParams}}{{#required}} @@ -136,6 +140,5 @@ class {{classname}} { return $responseObject;{{/returnType}} } {{/operation}} -{{newline}} -{{/operations}} } +{{/operations}}