From b1bf1c09af767fec8552b5b3c0fd4ca877524b79 Mon Sep 17 00:00:00 2001 From: Mikael Lixenstrand <78344223+lixen-wg2@users.noreply.github.com> Date: Wed, 5 May 2021 10:52:45 +0200 Subject: [PATCH 1/5] fix handle_request_json spec res --- .../src/main/resources/erlang-server/handler.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache b/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache index 80314899a38..6d7912b373b 100644 --- a/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache +++ b/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache @@ -209,7 +209,7 @@ process_response(Response, Req0, State = #state{operation_id = OperationID}) -> {stop, Req, State} end. --spec handle_request_json(cowboy_req:req(), state()) -> {cowboy_req:resp_body(), cowboy_req:req(), state()}. +-spec handle_request_json(cowboy_req:req(), state()) -> processed_response(). handle_request_json( Req0, -- GitLab From a544b8296deb05d9c6987b0e11ef2ce30b192d8d Mon Sep 17 00:00:00 2001 From: Mikael Lixenstrand <78344223+lixen-wg2@users.noreply.github.com> Date: Wed, 5 May 2021 11:23:29 +0200 Subject: [PATCH 2/5] fix client spec --- .../src/main/resources/erlang-client/api.mustache | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/erlang-client/api.mustache b/modules/openapi-generator/src/main/resources/erlang-client/api.mustache index a2335745bbb..ddb5dee0138 100644 --- a/modules/openapi-generator/src/main/resources/erlang-client/api.mustache +++ b/modules/openapi-generator/src/main/resources/erlang-client/api.mustache @@ -3,7 +3,7 @@ -export([{{#operations}}{{#operation}}{{^-first}}, {{/-first}}{{operationId}}/{{arityRequired}}, {{operationId}}/{{arityOptional}}{{/operation}}{{/operations}}]). --define(BASE_URL, "{{{basePathWithoutHost}}}"). +-define(BASE_URL, <<"{{{basePathWithoutHost}}}">>). {{#operations}} {{#operation}} @@ -21,7 +21,7 @@ Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})), Method = {{httpMethod}}, - Path = ["{{{replacedPathName}}}"], + Path = [<<"{{{replacedPathName}}}">>], QS = {{#queryParams.isEmpty}}[]{{/queryParams.isEmpty}}{{^queryParams.isEmpty}}lists:flatten([{{#joinWithComma}}{{#queryParams}}{{#required}}{{#qsEncode}}{{this}}{{/qsEncode}} {{/required}}{{/queryParams}}{{/joinWithComma}}])++{{packageName}}_utils:optional_params([{{#joinWithComma}}{{#queryParams}}{{^required}} '{{baseName}}'{{/required}}{{/queryParams}}{{/joinWithComma}}], _OptionalParams){{/queryParams.isEmpty}}, Headers = {{#headerParams.isEmpty}}[]{{/headerParams.isEmpty}}{{^headerParams.isEmpty}}[{{#headerParams}}{{#required}} {<<"{{baseName}}">>, {{paramName}}}{{/required}}{{/headerParams}}]++{{packageName}}_utils:optional_params([{{#joinWithComma}}{{#headerParams}}{{^required}} '{{baseName}}'{{/required}}{{/headerParams}}{{/joinWithComma}}], _OptionalParams){{/headerParams.isEmpty}}, Body1 = {{^formParams.isEmpty}}{form, [{{#joinWithComma}}{{#formParams}}{{#required}} {<<"{{baseName}}">>, {{paramName}}}{{/required}}{{/formParams}}{{/joinWithComma}}]++{{packageName}}_utils:optional_params([{{#joinWithComma}}{{#formParams}}{{^required}} '{{baseName}}'{{/required}}{{/formParams}}{{/joinWithComma}}], _OptionalParams)}{{/formParams.isEmpty}}{{#formParams.isEmpty}}{{#bodyParams.isEmpty}}[]{{/bodyParams.isEmpty}}{{^bodyParams.isEmpty}}{{#bodyParams}}{{paramName}}{{/bodyParams}}{{/bodyParams.isEmpty}}{{/formParams.isEmpty}}, -- GitLab From 24836cd31c50e5fb2c1a938e5f96f9232037209f Mon Sep 17 00:00:00 2001 From: Mikael Lixenstrand <lixen@wgtwo.com> Date: Tue, 18 May 2021 09:43:24 +0200 Subject: [PATCH 3/5] make it possible to answer with 0 size binary for 204 --- .../src/main/resources/erlang-server/handler.mustache | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache b/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache index 6d7912b373b..e919e9485c4 100644 --- a/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache +++ b/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache @@ -233,7 +233,7 @@ handle_request_json( Body, ValidatorState ), - PreparedBody = jsx:encode(Body), + PreparedBody = prepare_body(Body), Response = {ok, {Code, Headers, PreparedBody}}, process_response(Response, Req1, State); {error, Reason, Req1} -> @@ -241,3 +241,8 @@ handle_request_json( end. validate_headers(_, Req) -> {true, Req}. + +prepare_body(Body) when map_size(Body) > 0 -> + jsx:encode(Body); +prepare_body(_Body) -> + <<>>. -- GitLab From 24ed0f3916719ed75b70834220c4d74872b5f53b Mon Sep 17 00:00:00 2001 From: Mikael Lixenstrand <lixen@wgtwo.com> Date: Tue, 18 May 2021 12:03:34 +0200 Subject: [PATCH 4/5] only generate empty bin for 204 --- .../src/main/resources/erlang-server/handler.mustache | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache b/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache index e919e9485c4..0e5747d9891 100644 --- a/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache +++ b/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache @@ -233,7 +233,7 @@ handle_request_json( Body, ValidatorState ), - PreparedBody = prepare_body(Body), + PreparedBody = prepare_body(Code, Body), Response = {ok, {Code, Headers, PreparedBody}}, process_response(Response, Req1, State); {error, Reason, Req1} -> @@ -242,7 +242,8 @@ handle_request_json( validate_headers(_, Req) -> {true, Req}. -prepare_body(Body) when map_size(Body) > 0 -> - jsx:encode(Body); -prepare_body(_Body) -> - <<>>. +prepare_body(204, Body) when map_size(Body) == 0; length(Body) == 0 -> + <<>>; + +prepare_body(_Code, Body) -> + jsx:encode(Body). -- GitLab From e153500960db69b2f08566ac17a06fb873abbbf9 Mon Sep 17 00:00:00 2001 From: Mikael Lixenstrand <lixen@wgtwo.com> Date: Tue, 18 May 2021 12:03:34 +0200 Subject: [PATCH 5/5] only generate empty bin for 204 --- .../src/main/resources/erlang-server/handler.mustache | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache b/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache index e919e9485c4..dc1c47cc20e 100644 --- a/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache +++ b/modules/openapi-generator/src/main/resources/erlang-server/handler.mustache @@ -233,7 +233,7 @@ handle_request_json( Body, ValidatorState ), - PreparedBody = prepare_body(Body), + PreparedBody = prepare_body(Code, Body), Response = {ok, {Code, Headers, PreparedBody}}, process_response(Response, Req1, State); {error, Reason, Req1} -> @@ -242,7 +242,7 @@ handle_request_json( validate_headers(_, Req) -> {true, Req}. -prepare_body(Body) when map_size(Body) > 0 -> - jsx:encode(Body); -prepare_body(_Body) -> - <<>>. +prepare_body(204, Body) when map_size(Body) == 0; length(Body) == 0 -> + <<>>; +prepare_body(_Code, Body) -> + jsx:encode(Body). -- GitLab