Skip to content

Commit

Permalink
[Ada] Fix GNAT project and server skeleton to avoid sending a respons…
Browse files Browse the repository at this point in the history
…e when an error is returned (#7574)

* Fix the GNAT project for the client and server to avoid using unecessary projects on
the client side

* Define a minimal configuration for user and application definition

* Fix the server skeleton to emit the response only when the status code is 200

* Fix the Ada petstore GNAT project
  • Loading branch information
stcarrez authored and wing328 committed Feb 5, 2018
1 parent dbe78e2 commit 9ba74f4
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ public void processOpts() {
additionalProperties.put("packageConfig", configBaseName);
additionalProperties.put("packageDir", "client");
additionalProperties.put("mainName", "client");
additionalProperties.put("isServer", false);
additionalProperties.put(CodegenConstants.PROJECT_NAME, projectName);

String names[] = this.modelPackage.split("\\.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ public void processOpts() {
additionalProperties.put("packageConfig", configBaseName);
additionalProperties.put("packageDir", "server");
additionalProperties.put("mainName", "server");
additionalProperties.put("isServer", "true");
additionalProperties.put(CodegenConstants.PROJECT_NAME, projectName);

String names[] = this.modelPackage.split("\\.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@
with "config";
with "util";
with "util_http";
with "asf";
with "security";
with "swagger";
with "swagger";{{#isServer}}
with "servlet";
with "swagger_server";{{/isServer}}
project {{{projectName}}} is

Mains := ("{{{packageName}}}-{{{mainName}}}.adb");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,21 @@
swagger.dir=web
swagger.web.enable=false
swagger.ui.enable=true
swagger.port=8080
swagger.apps=app
swagger.users=users
swagger.key=NTk4YzEyODNhMjM4IDJjMjNkOGFiNThkYSBkZWExOTQ1MTQ2YjkgZmIxNGM4NWY4OGQzCg

app.list=1
app.1.client_id=test-app
app.1.client_secret=test-app-secret
app.1.scope=none

users.list=1,2
users.1.username=admin
users.1.password=admin
users.2.username=test
users.2.password=test

# Configuration for log4j
log4j.rootCategory=DEBUG,console,result
Expand All @@ -15,7 +30,7 @@ log4j.logger.log=WARN
log4j.logger.Util.Properties=DEBUG
log4j.logger.Util.Log=WARN
log4j.logger.Util=DEBUG
log4j.logger.ASF=DEBUG
log4j.logger.Servlet=DEBUG
log4j.logger.Util.Serialize.Mappers=WARN
log4j.logger.Util.Serialize.IO=INFO

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,13 @@ package body {{package}}.Skeletons is
{{/returnType}}
{{/hasParams}}
{{#returnType}}
Stream.Start_Document;{{#vendorExtensions.x-codegen-response.isString}}
Swagger.Streams.Serialize (Stream, "", Result);{{/vendorExtensions.x-codegen-response.isString}}{{^vendorExtensions.x-codegen-response.isString}}{{#returnTypeIsPrimitive}}
Swagger.Streams.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}
{{package}}.Models.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{/vendorExtensions.x-codegen-response.isString}}
Stream.End_Document;{{/returnType}}
if Context.Get_Status = 200 then
Stream.Start_Document;{{#vendorExtensions.x-codegen-response.isString}}
Swagger.Streams.Serialize (Stream, "", Result);{{/vendorExtensions.x-codegen-response.isString}}{{^vendorExtensions.x-codegen-response.isString}}{{#returnTypeIsPrimitive}}
Swagger.Streams.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}
{{package}}.Models.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{/vendorExtensions.x-codegen-response.isString}}
Stream.End_Document;
end if;{{/returnType}}
end {{operationId}};
{{/operation}}
{{/operations}}
Expand Down Expand Up @@ -171,11 +173,13 @@ package body {{package}}.Skeletons is
{{/returnType}}
{{/hasParams}}
{{#returnType}}
Stream.Start_Document;{{#vendorExtensions.x-codegen-response.isString}}
Swagger.Streams.Serialize (Stream, "", Result);{{/vendorExtensions.x-codegen-response.isString}}{{^vendorExtensions.x-codegen-response.isString}}{{#returnTypeIsPrimitive}}
Swagger.Streams.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}
{{package}}.Models.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{/vendorExtensions.x-codegen-response.isString}}
Stream.End_Document;{{/returnType}}
if Context.Get_Status = 200 then
Stream.Start_Document;{{#vendorExtensions.x-codegen-response.isString}}
Swagger.Streams.Serialize (Stream, "", Result);{{/vendorExtensions.x-codegen-response.isString}}{{^vendorExtensions.x-codegen-response.isString}}{{#returnTypeIsPrimitive}}
Swagger.Streams.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{^returnTypeIsPrimitive}}
{{package}}.Models.Serialize (Stream, "", Result);{{/returnTypeIsPrimitive}}{{/vendorExtensions.x-codegen-response.isString}}
Stream.End_Document;
end if;{{/returnType}}
end {{operationId}};

package API_{{operationId}} is
Expand Down
1 change: 0 additions & 1 deletion samples/client/petstore/ada/petstore.gpr
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
with "config";
with "util";
with "util_http";
with "asf";
with "security";
with "swagger";
project Petstore is
Expand Down

0 comments on commit 9ba74f4

Please sign in to comment.