Skip to content

Commit

Permalink
fix templates
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrey Frolov committed Feb 13, 2025
1 parent 870d81a commit 86d2d62
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 45 deletions.
35 changes: 21 additions & 14 deletions Templates/v2/Java/api.stencil
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,26 @@ import org.springframework.web.bind.annotation.*;

@Tag(name = "{{ service.name }} API")
public interface {{ service.name }}Api {
{%for path in service.paths%}
{%for operation in path.operations%}
@Operation(summary = "{{ operation.summary }}")
{%if operation.httpMethod|lowercase == "delete"%}
@ResponseStatus(HttpStatus.NO_CONTENT)
{%endif%}

{%- paths: for path in service.paths %}{% operations: for operation in path.operations %}
@Operation(summary = "{{ operation.summary }}")
{%- if operation.httpMethod|lowercase == "delete" %}
@ResponseStatus(HttpStatus.NO_CONTENT)
{%- endif %}
@{{ operation.httpMethod|capitalizeFirstLetter }}Mapping("{{ path.path }}")
{%if operation.httpMethod|lowercase == "delete"%}void{%else%}ResponseEntity<{{ operation.responseGenerationModel.value.typeNames|join }}>{%endif%} {{operation.id}}({%for parameter in operation.pathParameters%}
@PathVariable("{{ parameter.name }}") {{ parameter.typeModel.name|capitalizeFirstLetter }} {{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for parameter in operation.headerParameters%}
@RequestHeader(name = "{{ parameter.name }}", required={{ parameter.isRequired }}) String {{ parameter.schema.type|capitalizeFirstLetter }} {{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for parameter in operation.queryParameters%}@RequestParam(name = "{{ parameter.name }}", required={{ parameter.isRequired }}) {{ parameter.typeModel.name|capitalizeFirstLetter }} {{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for requestModelName in operation.requestGenerationModel.typeNames%}@Valid @RequestBody {{ requestModelName|capitalizeFirstLetter }} {{ requestModelName|snakeCaseToCamelCase }}{%endfor%});
{%endfor%}
{%endfor%}
{%- if operation.httpMethod|lowercase == "delete" %}
void{% else %}
ResponseEntity<{{ operation.responseGenerationModel.value.typeNames|join }}>
{%- endif %} {{operation.id}}(
{%- for parameter in operation.pathParameters %}@PathVariable("{{ parameter.name }}") {{ parameter.typeModel.name|capitalizeFirstLetter }} {{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.headerParameters or operation.queryParameters or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{% for parameter in operation.headerParameters %}@RequestHeader(name = "{{ parameter.name }}", required={{ parameter.isRequired }}) {{ parameter.typeModel.name|capitalizeFirstLetter }} {{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.queryParameters or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{% for parameter in operation.queryParameters%}@RequestParam(name = "{{ parameter.name }}", required={{ parameter.isRequired }}) {{ parameter.typeModel.name|capitalizeFirstLetter }} {{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{% for requestModelName in operation.requestGenerationModel.typeNames %}@Valid @RequestBody {{ requestModelName|capitalizeFirstLetter }} {{ requestModelName|snakeCaseToCamelCase }}
{%- if not forloop.last%}, {% endif -%}{% endfor -%});
{%- if not forloop.paths.last or not forloop.operations.last %}
{% endif -%}
{% endfor %}{% endfor %}
}
71 changes: 43 additions & 28 deletions Templates/v2/Java/controller.stencil
Original file line number Diff line number Diff line change
Expand Up @@ -11,35 +11,50 @@ import org.springframework.web.bind.annotation.*;
public class {{ service.name }}Controller implements {{ service.name }}Api {
private final {{ service.name }}Service {{ service.name|lowercaseFirstLetter }}Service;

{%for path in service.paths%}
{%for operation in path.operations%}
{%- for path in service.paths -%}
{%- for operation in path.operations%}

@Override
public {%if operation.responseGenerationModel.key == "204"%}void{%else%}ResponseEntity<{{ operation.responseGenerationModel.value.typeNames|join }}>{%endif%} {{ operation.id }}(
{%for parameter in operation.pathParameters%}{{ parameter.typeModel.name|capitalizeFirstLetter }} {{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for parameter in operation.headerParameters%}{{ parameter.typeModel.name|capitalizeFirstLetter }} {{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for parameter in operation.queryParameters%}{{ parameter.typeModel.name|capitalizeFirstLetter }} {{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for requestModelName in operation.requestGenerationModel.typeNames%} {{ requestModelName|capitalizeFirstLetter }} {{ requestModelName|snakeCaseToCamelCase }}{%endfor%}) {
{%if operation.responseGenerationModel.key == "204"%}
public {% if operation.responseGenerationModel.key == "204" %}void{% else %}ResponseEntity<{{ operation.responseGenerationModel.value.typeNames|join }}>{% endif %} {{ operation.id }}(
{%- for parameter in operation.pathParameters %}{{ parameter.typeModel.name|capitalizeFirstLetter }} {{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.headerParameters or operation.queryParameters or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{% for parameter in operation.headerParameters %}{{ parameter.typeModel.name|capitalizeFirstLetter }} {{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.queryParameters or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{% for parameter in operation.queryParameters %}{{ parameter.typeModel.name|capitalizeFirstLetter }} {{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{% for requestModelName in operation.requestGenerationModel.typeNames -%}{{ requestModelName|capitalizeFirstLetter }} {{ requestModelName|snakeCaseToCamelCase }}
{%- if not forloop.last%}, {% endif -%}{% endfor -%}) {
{%- if operation.responseGenerationModel.key == "204" %}
{{ service.name|lowercaseFirstLetter }}Service.{{ operation.id }}(
{%for parameter in operation.pathParameters%}{{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for parameter in operation.headerParameters%}{{ parameter.typeModel.name|capitalizeFirstLetter }} {{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for parameter in operation.queryParameters%}{{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for requestModelName in operation.requestGenerationModel.typeNames%}{{ requestModelName|snakeCaseToCamelCase }}{%endfor%});
{%else%}
return {%if operation.responseGenerationModel.key == "201"%}new ResponseEntity<>({{ service.name|lowercaseFirstLetter }}Service.{{ operation.id }}(
{%for parameter in operation.pathParameters%}{{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for parameter in operation.queryParameters%}{{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for parameter in operation.headerParameters%}{{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for requestModelName in operation.requestGenerationModel.typeNames%}{{ requestModelName|snakeCaseToCamelCase }}{%endfor%}), HttpStatus.CREATED);
{%else%}
{%- for parameter in operation.pathParameters %}{{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.headerParameters or operation.queryParameters or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{%- for parameter in operation.headerParameters %}{{ parameter.typeModel.name|capitalizeFirstLetter }} {{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.queryParameters or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{%- for parameter in operation.queryParameters %}{{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{%- for requestModelName in operation.requestGenerationModel.typeNames %}{{ requestModelName|snakeCaseToCamelCase }}
{%- if not forloop.last%}, {% endif -%}{% endfor -%});
{%- else %}
return {% if operation.responseGenerationModel.key == "201" %}new ResponseEntity<>({{ service.name|lowercaseFirstLetter }}Service.{{ operation.id }}(
{%- for parameter in operation.pathParameters %}{{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.headerParameters or operation.queryParameters or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{% for parameter in operation.queryParameters %}{{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.queryParameters or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{% for parameter in operation.headerParameters %}{{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{% for requestModelName in operation.requestGenerationModel.typeNames %}{{ requestModelName|snakeCaseToCamelCase }}
{%- if not forloop.last%}, {% endif -%}{% endfor -%}), HttpStatus.CREATED);
{%- else -%}
ResponseEntity.ok({{ service.name|lowercaseFirstLetter }}Service.{{ operation.id }}(
{%for parameter in operation.pathParameters%}{{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for parameter in operation.queryParameters%}{{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for parameter in operation.headerParameters%}{{ parameter.name|snakeCaseToCamelCase }}{%endfor%}
{%for requestModelName in operation.requestGenerationModel.typeNames%}{{ requestModelName|snakeCaseToCamelCase }}{%endfor%}));
{%endif%}
{%endif%}
}
{%endfor%}
{%endfor%}
{%- for parameter in operation.pathParameters %}{{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.headerParameters or operation.queryParameters or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{% for parameter in operation.queryParameters %}{{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.queryParameters or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{% for parameter in operation.headerParameters %}{{ parameter.name|snakeCaseToCamelCase }}
{%- if not forloop.last or operation.requestGenerationModel.typeNames%}, {% endif -%}{% endfor -%}
{% for requestModelName in operation.requestGenerationModel.typeNames %}{{ requestModelName|snakeCaseToCamelCase }}
{%- if not forloop.last%}, {% endif -%}{% endfor -%}));
{%- endif -%}
{%- endif %}
}{% endfor %}{% endfor %}
}
7 changes: 5 additions & 2 deletions Templates/v2/Java/dto.stencil
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,17 @@ import java.time.LocalDateTime;
@Data
@NoArgsConstructor
public class {{ model.name }} {
{% for property in model.properties %}
@Schema( description = "{{ property.description }}"{% if property.example %}, example = "{{ property.example }}"{% else %}){% endif %}{% if not property.isNullable %}
{%- for property in model.properties %}
@Schema(description = "{{ property.description }}"{% if property.example %}, example = "{{ property.example }}"{% else %}){% endif %}{% if property.pattern %}
@Pattern(regexp = "{{ property.pattern|withEscapedCharacters }}"){% endif %}{% if not property.isNullable %}
@NotNull{% if property.typeModel.name == "string" %}
@NotBlank{% endif %}{% elif property.isNullable %}
@Nullable{% endif %}{% if property.typeModel.name == "string" %}{% if property.minLength or property.maxLength %}
@Size(min = {{ property.minLength }}, max = {{ property.maxLength }}){% endif %}{% elif property.typeModel.name == "integer" %}{% if property.minimum or property.maximum %}
@Min({{ property.minimum}})
@Max({{ property.maximum }}){% endif %}{% endif %}
private {% if property.typeModel.isArray %}List<{{ property.typeModel.name|capitalizeFirstLetter }}>{% else %}{% if property.typeModel.name == "integer" %}{% if property.format == "int64" %}Long{% else %}Integer{% endif %}{% elif property.typeModel.name == "number" %}Double{% elif property.typeModel.name == "string" %}{% if property.format == "date-time" %}LocalDateTime{% elif property.format == "date" %}LocalDate{% else %}String{% endif %}{% else %}{{ property.typeModel.name|capitalizeFirstLetter }}{% endif %}{% endif %} {{ property.name|snakeCaseToCamelCase }};
{%- if not forloop.last %}
{% endif -%}
{% endfor %}
}
2 changes: 1 addition & 1 deletion Templates/v2/Java/enum.stencil
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
{% endif %}public enum {{ enum.name }} {
{% for caseValue in enum.cases %}{#
#}{{ caseValue|uppercase }}("{{ caseValue }}"){% if not forloop.last %},{% else %};{% endif %}
{% endfor %}
{%- endfor %}

private final String value;

Expand Down

0 comments on commit 86d2d62

Please sign in to comment.