From 0423e0a2dfb211eafc56cba0a970d85e86f63e62 Mon Sep 17 00:00:00 2001 From: wing328 Date: Thu, 4 Jun 2015 21:12:26 +0800 Subject: [PATCH] support object response --- .../swagger/codegen/languages/PerlClientCodegen.java | 6 ++++-- .../src/main/resources/perl/APIClient.mustache | 2 +- .../client/petstore/perl/lib/WWW/SwaggerClient/APIClient.pm | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/PerlClientCodegen.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/PerlClientCodegen.java index 74670f27e09..b96b012abba 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/PerlClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/PerlClientCodegen.java @@ -27,8 +27,8 @@ public class PerlClientCodegen extends DefaultCodegen implements CodegenConfig { public PerlClientCodegen() { super(); - modelPackage = "/Object"; - outputFolder = "generated-code/perl"; + modelPackage = File.separatorChar + "Object"; + outputFolder = "generated-code" + File.separatorChar + "perl"; modelTemplateFiles.put("object.mustache", ".pm"); apiTemplateFiles.put("api.mustache", ".pm"); templateDir = "perl"; @@ -63,6 +63,7 @@ public class PerlClientCodegen extends DefaultCodegen implements CodegenConfig { languageSpecificPrimitives.add("DateTime"); languageSpecificPrimitives.add("ARRAY"); languageSpecificPrimitives.add("HASH"); + languageSpecificPrimitives.add("object"); typeMapping.put("integer", "int"); typeMapping.put("long", "int"); @@ -75,6 +76,7 @@ public class PerlClientCodegen extends DefaultCodegen implements CodegenConfig { typeMapping.put("password", "string"); typeMapping.put("array", "ARRAY"); typeMapping.put("map", "HASH"); + typeMapping.put("object", "object"); supportingFiles.add(new SupportingFile("ApiClient.mustache", ("lib/WWW/" + invokerPackage).replace('/', File.separatorChar), "ApiClient.pm")); supportingFiles.add(new SupportingFile("Configuration.mustache", ("lib/WWW/" + invokerPackage).replace('/', File.separatorChar), "Configuration.pm")); diff --git a/modules/swagger-codegen/src/main/resources/perl/APIClient.mustache b/modules/swagger-codegen/src/main/resources/perl/APIClient.mustache index 1d71ca3f99a..2bcdd6da690 100644 --- a/modules/swagger-codegen/src/main/resources/perl/APIClient.mustache +++ b/modules/swagger-codegen/src/main/resources/perl/APIClient.mustache @@ -216,7 +216,7 @@ sub deserialize $_result = \@_values; } elsif ($class eq 'DateTime') { $_result = DateTime->from_epoch(epoch => str2time($data)); - } elsif (grep /^$data$/, ('string', 'int', 'float', 'bool')) { #TODO revise the primitive type + } elsif (grep /^$class$/, ('string', 'int', 'float', 'bool', 'object')) { #TODO revise the primitive type $_result= $data; } else { # model my $_instance = use_module("WWW::{{invokerPackage}}::Object::$class")->new; diff --git a/samples/client/petstore/perl/lib/WWW/SwaggerClient/APIClient.pm b/samples/client/petstore/perl/lib/WWW/SwaggerClient/APIClient.pm index 0ac34355c4c..da29b3e246a 100644 --- a/samples/client/petstore/perl/lib/WWW/SwaggerClient/APIClient.pm +++ b/samples/client/petstore/perl/lib/WWW/SwaggerClient/APIClient.pm @@ -216,7 +216,7 @@ sub deserialize $_result = \@_values; } elsif ($class eq 'DateTime') { $_result = DateTime->from_epoch(epoch => str2time($data)); - } elsif (grep /^$data$/, ('string', 'int', 'float', 'bool')) { #TODO revise the primitive type + } elsif (grep /^$class$/, ('string', 'int', 'float', 'bool', 'object')) { #TODO revise the primitive type $_result= $data; } else { # model my $_instance = use_module("WWW::SwaggerClient::Object::$class")->new;