From 3f0b71b3e0516dc9631a8507e30cc4c684921cdb Mon Sep 17 00:00:00 2001 From: Martin Ehrnhoefer Date: Wed, 8 Oct 2014 08:57:01 +0200 Subject: [PATCH] Make response headers available to the code generator --- .../wordnik/swagger/codegen/CodegenOperation.java | 2 +- .../com/wordnik/swagger/codegen/DefaultCodegen.java | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/wordnik/swagger/codegen/CodegenOperation.java b/src/main/java/com/wordnik/swagger/codegen/CodegenOperation.java index 2123bd873ff..c515c433d67 100644 --- a/src/main/java/com/wordnik/swagger/codegen/CodegenOperation.java +++ b/src/main/java/com/wordnik/swagger/codegen/CodegenOperation.java @@ -19,7 +19,7 @@ public class CodegenOperation { public List formParams = new ArrayList(); public List tags; public List responses = new ArrayList(); - + public final List responseHeaders = new ArrayList(); public Set imports = new HashSet(); public List> examples; public ExternalDocs externalDocs; diff --git a/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java b/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java index 607038aaa3a..66f996c4578 100644 --- a/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java +++ b/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java @@ -606,7 +606,8 @@ public class DefaultCodegen { } } - if(methodResponse != null && methodResponse.getSchema() != null) { + if(methodResponse != null) { + if (methodResponse.getSchema() != null) { CodegenProperty cm = fromProperty("response", methodResponse.getSchema()); Property responseProperty = methodResponse.getSchema(); @@ -632,6 +633,8 @@ public class DefaultCodegen { op.returnSimpleType = true; if (languageSpecificPrimitives().contains(op.returnBaseType) || op.returnBaseType == null) op.returnTypeIsPrimitive = true; + } + addHeaders(methodResponse, op.responseHeaders); } if(op.returnBaseType == null) { @@ -808,6 +811,14 @@ public class DefaultCodegen { return output; } + private void addHeaders(Response response, List target) { + if (response.getHeaders() != null) { + for (Map.Entry headers : response.getHeaders().entrySet()) { + target.add(fromProperty(headers.getKey(), headers.getValue())); + } + } + } + private List addHasMore(List objs) { if(objs != null) { for(int i = 0; i < objs.size(); i++) {