From 4015e58c6bf195eeffda5b7c928788a52cc54431 Mon Sep 17 00:00:00 2001
From: William Cheng <wing328hk@gmail.com>
Date: Mon, 5 Jul 2021 10:44:11 +0800
Subject: [PATCH] fix regex in erlang, update samples

---
 .../languages/ErlangClientCodegen.java        |  5 +++++
 .../languages/ErlangProperCodegen.java        |  5 +++++
 .../languages/ErlangServerCodegen.java        |  4 ++++
 .../erlang-client/.openapi-generator/FILES    | 13 ++++++++++++
 .../erlang-client/.openapi-generator/VERSION  |  2 +-
 .../erlang-client/src/petstore_pet_api.erl    | 18 ++++++++---------
 .../erlang-client/src/petstore_store_api.erl  | 10 +++++-----
 .../erlang-client/src/petstore_user_api.erl   | 18 ++++++++---------
 .../erlang-proper/.openapi-generator/FILES    | 20 +++++++++++++++++++
 .../erlang-proper/.openapi-generator/VERSION  |  2 +-
 .../erlang-server/src/openapi_api.erl         |  2 +-
 11 files changed, 73 insertions(+), 26 deletions(-)
 create mode 100644 samples/client/petstore/erlang-client/.openapi-generator/FILES
 create mode 100644 samples/client/petstore/erlang-proper/.openapi-generator/FILES

diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangClientCodegen.java
index 231d1136b77..3349e256072 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangClientCodegen.java
@@ -474,4 +474,9 @@ public class ErlangClientCodegen extends DefaultCodegen implements CodegenConfig
             this.replacedPathName = replacedPathName;
         }
     }
+
+    @Override
+    public String addRegularExpressionDelimiter(String pattern) {
+        return pattern;
+    }
 }
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangProperCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangProperCodegen.java
index 40947a5e958..aec98664149 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangProperCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangProperCodegen.java
@@ -568,4 +568,9 @@ public class ErlangProperCodegen extends DefaultCodegen implements CodegenConfig
             this.replacedPathName = replacedPathName;
         }
     }
+
+    @Override
+    public String addRegularExpressionDelimiter(String pattern) {
+        return pattern;
+    }
 }
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangServerCodegen.java
index b1cda784a5a..0c9fc2dcc19 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangServerCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ErlangServerCodegen.java
@@ -326,4 +326,8 @@ public class ErlangServerCodegen extends DefaultCodegen implements CodegenConfig
         return input.replace("-ifdef", "- if def").replace("-endif", "- end if");
     }
 
+    @Override
+    public String addRegularExpressionDelimiter(String pattern) {
+        return pattern;
+    }
 }
diff --git a/samples/client/petstore/erlang-client/.openapi-generator/FILES b/samples/client/petstore/erlang-client/.openapi-generator/FILES
new file mode 100644
index 00000000000..63262b16b50
--- /dev/null
+++ b/samples/client/petstore/erlang-client/.openapi-generator/FILES
@@ -0,0 +1,13 @@
+README.md
+rebar.config
+src/petstore.app.src
+src/petstore_api_response.erl
+src/petstore_category.erl
+src/petstore_order.erl
+src/petstore_pet.erl
+src/petstore_pet_api.erl
+src/petstore_store_api.erl
+src/petstore_tag.erl
+src/petstore_user.erl
+src/petstore_user_api.erl
+src/petstore_utils.erl
diff --git a/samples/client/petstore/erlang-client/.openapi-generator/VERSION b/samples/client/petstore/erlang-client/.openapi-generator/VERSION
index c30f0ec2be7..6555596f931 100644
--- a/samples/client/petstore/erlang-client/.openapi-generator/VERSION
+++ b/samples/client/petstore/erlang-client/.openapi-generator/VERSION
@@ -1 +1 @@
-5.1.0-SNAPSHOT
\ No newline at end of file
+5.2.0-SNAPSHOT
\ No newline at end of file
diff --git a/samples/client/petstore/erlang-client/src/petstore_pet_api.erl b/samples/client/petstore/erlang-client/src/petstore_pet_api.erl
index 54991ba9dd1..0aa298cb360 100644
--- a/samples/client/petstore/erlang-client/src/petstore_pet_api.erl
+++ b/samples/client/petstore/erlang-client/src/petstore_pet_api.erl
@@ -9,7 +9,7 @@
          update_pet_with_form/2, update_pet_with_form/3,
          upload_file/2, upload_file/3]).
 
--define(BASE_URL, "/v2").
+-define(BASE_URL, <<"/v2">>).
 
 %% @doc Add a new pet to the store
 %% 
@@ -23,7 +23,7 @@ add_pet(Ctx, PetstorePet, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = post,
-    Path = ["/pet"],
+    Path = [<<"/pet">>],
     QS = [],
     Headers = [],
     Body1 = PetstorePet,
@@ -44,7 +44,7 @@ delete_pet(Ctx, PetId, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = delete,
-    Path = ["/pet/", PetId, ""],
+    Path = [<<"/pet/", PetId, "">>],
     QS = [],
     Headers = []++petstore_utils:optional_params(['api_key'], _OptionalParams),
     Body1 = [],
@@ -65,7 +65,7 @@ find_pets_by_status(Ctx, Status, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = get,
-    Path = ["/pet/findByStatus"],
+    Path = [<<"/pet/findByStatus">>],
     QS = lists:flatten([[{<<"status">>, X} || X <- Status]])++petstore_utils:optional_params([], _OptionalParams),
     Headers = [],
     Body1 = [],
@@ -86,7 +86,7 @@ find_pets_by_tags(Ctx, Tags, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = get,
-    Path = ["/pet/findByTags"],
+    Path = [<<"/pet/findByTags">>],
     QS = lists:flatten([[{<<"tags">>, X} || X <- Tags]])++petstore_utils:optional_params([], _OptionalParams),
     Headers = [],
     Body1 = [],
@@ -107,7 +107,7 @@ get_pet_by_id(Ctx, PetId, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = get,
-    Path = ["/pet/", PetId, ""],
+    Path = [<<"/pet/", PetId, "">>],
     QS = [],
     Headers = [],
     Body1 = [],
@@ -128,7 +128,7 @@ update_pet(Ctx, PetstorePet, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = put,
-    Path = ["/pet"],
+    Path = [<<"/pet">>],
     QS = [],
     Headers = [],
     Body1 = PetstorePet,
@@ -149,7 +149,7 @@ update_pet_with_form(Ctx, PetId, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = post,
-    Path = ["/pet/", PetId, ""],
+    Path = [<<"/pet/", PetId, "">>],
     QS = [],
     Headers = [],
     Body1 = {form, []++petstore_utils:optional_params(['name', 'status'], _OptionalParams)},
@@ -170,7 +170,7 @@ upload_file(Ctx, PetId, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = post,
-    Path = ["/pet/", PetId, "/uploadImage"],
+    Path = [<<"/pet/", PetId, "/uploadImage">>],
     QS = [],
     Headers = [],
     Body1 = {form, []++petstore_utils:optional_params(['additionalMetadata', 'file'], _OptionalParams)},
diff --git a/samples/client/petstore/erlang-client/src/petstore_store_api.erl b/samples/client/petstore/erlang-client/src/petstore_store_api.erl
index 2e72823d9d9..0d59557dc98 100644
--- a/samples/client/petstore/erlang-client/src/petstore_store_api.erl
+++ b/samples/client/petstore/erlang-client/src/petstore_store_api.erl
@@ -5,7 +5,7 @@
          get_order_by_id/2, get_order_by_id/3,
          place_order/2, place_order/3]).
 
--define(BASE_URL, "/v2").
+-define(BASE_URL, <<"/v2">>).
 
 %% @doc Delete purchase order by ID
 %% For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
@@ -19,7 +19,7 @@ delete_order(Ctx, OrderId, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = delete,
-    Path = ["/store/order/", OrderId, ""],
+    Path = [<<"/store/order/", OrderId, "">>],
     QS = [],
     Headers = [],
     Body1 = [],
@@ -40,7 +40,7 @@ get_inventory(Ctx, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = get,
-    Path = ["/store/inventory"],
+    Path = [<<"/store/inventory">>],
     QS = [],
     Headers = [],
     Body1 = [],
@@ -61,7 +61,7 @@ get_order_by_id(Ctx, OrderId, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = get,
-    Path = ["/store/order/", OrderId, ""],
+    Path = [<<"/store/order/", OrderId, "">>],
     QS = [],
     Headers = [],
     Body1 = [],
@@ -82,7 +82,7 @@ place_order(Ctx, PetstoreOrder, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = post,
-    Path = ["/store/order"],
+    Path = [<<"/store/order">>],
     QS = [],
     Headers = [],
     Body1 = PetstoreOrder,
diff --git a/samples/client/petstore/erlang-client/src/petstore_user_api.erl b/samples/client/petstore/erlang-client/src/petstore_user_api.erl
index 45a8a9d7872..a60ccfb43eb 100644
--- a/samples/client/petstore/erlang-client/src/petstore_user_api.erl
+++ b/samples/client/petstore/erlang-client/src/petstore_user_api.erl
@@ -9,7 +9,7 @@
          logout_user/1, logout_user/2,
          update_user/3, update_user/4]).
 
--define(BASE_URL, "/v2").
+-define(BASE_URL, <<"/v2">>).
 
 %% @doc Create user
 %% This can only be done by the logged in user.
@@ -23,7 +23,7 @@ create_user(Ctx, PetstoreUser, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = post,
-    Path = ["/user"],
+    Path = [<<"/user">>],
     QS = [],
     Headers = [],
     Body1 = PetstoreUser,
@@ -44,7 +44,7 @@ create_users_with_array_input(Ctx, PetstoreUserArray, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = post,
-    Path = ["/user/createWithArray"],
+    Path = [<<"/user/createWithArray">>],
     QS = [],
     Headers = [],
     Body1 = PetstoreUserArray,
@@ -65,7 +65,7 @@ create_users_with_list_input(Ctx, PetstoreUserArray, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = post,
-    Path = ["/user/createWithList"],
+    Path = [<<"/user/createWithList">>],
     QS = [],
     Headers = [],
     Body1 = PetstoreUserArray,
@@ -86,7 +86,7 @@ delete_user(Ctx, Username, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = delete,
-    Path = ["/user/", Username, ""],
+    Path = [<<"/user/", Username, "">>],
     QS = [],
     Headers = [],
     Body1 = [],
@@ -107,7 +107,7 @@ get_user_by_name(Ctx, Username, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = get,
-    Path = ["/user/", Username, ""],
+    Path = [<<"/user/", Username, "">>],
     QS = [],
     Headers = [],
     Body1 = [],
@@ -128,7 +128,7 @@ login_user(Ctx, Username, Password, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = get,
-    Path = ["/user/login"],
+    Path = [<<"/user/login">>],
     QS = lists:flatten([{<<"username">>, Username}, {<<"password">>, Password}])++petstore_utils:optional_params([], _OptionalParams),
     Headers = [],
     Body1 = [],
@@ -149,7 +149,7 @@ logout_user(Ctx, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = get,
-    Path = ["/user/logout"],
+    Path = [<<"/user/logout">>],
     QS = [],
     Headers = [],
     Body1 = [],
@@ -170,7 +170,7 @@ update_user(Ctx, Username, PetstoreUser, Optional) ->
     Cfg = maps:get(cfg, Optional, application:get_env(kuberl, config, #{})),
 
     Method = put,
-    Path = ["/user/", Username, ""],
+    Path = [<<"/user/", Username, "">>],
     QS = [],
     Headers = [],
     Body1 = PetstoreUser,
diff --git a/samples/client/petstore/erlang-proper/.openapi-generator/FILES b/samples/client/petstore/erlang-proper/.openapi-generator/FILES
new file mode 100644
index 00000000000..2a5af8d28a5
--- /dev/null
+++ b/samples/client/petstore/erlang-proper/.openapi-generator/FILES
@@ -0,0 +1,20 @@
+README.md
+rebar.config
+src/model/petstore_api_response.erl
+src/model/petstore_category.erl
+src/model/petstore_order.erl
+src/model/petstore_pet.erl
+src/model/petstore_tag.erl
+src/model/petstore_user.erl
+src/petstore.app.src
+src/petstore.hrl
+src/petstore_api.erl
+src/petstore_api.erl
+src/petstore_api.erl
+src/petstore_gen.erl
+src/petstore_statem.erl
+src/petstore_statem.erl
+src/petstore_statem.erl
+src/petstore_statem.hrl
+src/petstore_utils.erl
+test/prop_petstore.erl
diff --git a/samples/client/petstore/erlang-proper/.openapi-generator/VERSION b/samples/client/petstore/erlang-proper/.openapi-generator/VERSION
index d99e7162d01..6555596f931 100644
--- a/samples/client/petstore/erlang-proper/.openapi-generator/VERSION
+++ b/samples/client/petstore/erlang-proper/.openapi-generator/VERSION
@@ -1 +1 @@
-5.0.0-SNAPSHOT
\ No newline at end of file
+5.2.0-SNAPSHOT
\ No newline at end of file
diff --git a/samples/server/petstore/erlang-server/src/openapi_api.erl b/samples/server/petstore/erlang-server/src/openapi_api.erl
index a1a6fa220ec..19e8f7b542c 100644
--- a/samples/server/petstore/erlang-server/src/openapi_api.erl
+++ b/samples/server/petstore/erlang-server/src/openapi_api.erl
@@ -349,7 +349,7 @@ request_param_info('LoginUser', 'username') ->
         source => qs_val  ,
         rules => [
             {type, 'binary'},
-            {pattern, "/^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$/" },
+            {pattern, "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$" },
             required
         ]
     };
-- 
GitLab