Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -454,29 +454,6 @@ public String escapeQuotationMark(String input) {
return input.replace("\"", "\\\"");
}

protected String escapeRegex(String pattern) {
pattern = pattern.replaceAll("\\\\\\\\", "\\\\");
pattern = pattern.replaceAll("^/", "");
pattern = pattern.replaceAll("/$", "");
return pattern;
}

/**
* Convert OpenAPI Parameter object to Codegen Parameter object
*
* @param imports set of imports for library/package/module
* @param param OpenAPI parameter object
* @return Codegen Parameter object
*/
@Override
public CodegenParameter fromParameter(Parameter param, Set<String> imports) {
CodegenParameter parameter = super.fromParameter(param, imports);
if (parameter.pattern != null) {
parameter.pattern = escapeRegex(parameter.pattern);
}
return parameter;
}

/**
* Convert OAS Property schema to Codegen Property object.
* <p>
Expand All @@ -498,9 +475,6 @@ public CodegenProperty fromProperty(String name, Schema schema, boolean required
if (needsVarEscape(property.name)) {
property.name = "var\"" + property.name + "\"";
}
if (property.pattern != null) {
property.pattern = escapeRegex(property.pattern);
}
return property;
}

Expand Down Expand Up @@ -531,6 +505,19 @@ private void changeParamNames(List<CodegenParameter> paramsList, HashSet<String>
}
}

@Override
public String toRegularExpression(String pattern) {
if (pattern == null) {
return pattern;
}

pattern = escapeText(pattern);
// escapeText unnecessarily escapes `\` such that `\.` in the regex ends up as `\\.` for example.
// we need to restore it back by converting `\\` to `\`
pattern = pattern.replaceAll("\\\\\\\\", "\\\\");
return pattern;
}

/**
* Convert OAS Operation object to Codegen Operation object
*
Expand Down
Loading