From f59c07b24a8ae806212ddedca87f69ac4c27c3cd Mon Sep 17 00:00:00 2001 From: Gustavo De Micheli Date: Tue, 22 Feb 2022 09:38:36 +0100 Subject: [PATCH] Add Model Docs to scala-akka generator as defined in its README (#11684) Co-authored-by: Gustavo De Micheli --- .../languages/ScalaAkkaClientCodegen.java | 8 +++++ .../scala-akka-client/class_doc.mustache | 32 +++++++++++++++++++ .../scala-akka-client/enum_doc.mustache | 7 ++++ .../scala-akka-client/model_doc.mustache | 9 ++++++ .../scala-akka/.openapi-generator/FILES | 6 ++++ samples/client/petstore/scala-akka/README.md | 12 +++---- .../petstore/scala-akka/docs/ApiResponse.md | 16 ++++++++++ .../petstore/scala-akka/docs/Category.md | 15 +++++++++ .../client/petstore/scala-akka/docs/Order.md | 24 ++++++++++++++ .../client/petstore/scala-akka/docs/Pet.md | 24 ++++++++++++++ .../client/petstore/scala-akka/docs/Tag.md | 15 +++++++++ .../client/petstore/scala-akka/docs/User.md | 21 ++++++++++++ 12 files changed, 183 insertions(+), 6 deletions(-) create mode 100644 modules/openapi-generator/src/main/resources/scala-akka-client/class_doc.mustache create mode 100644 modules/openapi-generator/src/main/resources/scala-akka-client/enum_doc.mustache create mode 100644 modules/openapi-generator/src/main/resources/scala-akka-client/model_doc.mustache create mode 100644 samples/client/petstore/scala-akka/docs/ApiResponse.md create mode 100644 samples/client/petstore/scala-akka/docs/Category.md create mode 100644 samples/client/petstore/scala-akka/docs/Order.md create mode 100644 samples/client/petstore/scala-akka/docs/Pet.md create mode 100644 samples/client/petstore/scala-akka/docs/Tag.md create mode 100644 samples/client/petstore/scala-akka/docs/User.md diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java index e646f0127bb2..021603e448b1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java @@ -43,6 +43,7 @@ public class ScalaAkkaClientCodegen extends AbstractScalaCodegen implements Code protected String artifactId = "openapi-client"; protected String artifactVersion = "1.0.0"; protected String resourcesFolder = "src/main/resources"; + protected String modelDocPath = "docs/"; protected String configKey = "apiRequest"; protected int defaultTimeoutInMs = 5000; protected String configKeyPath = mainPackage; @@ -85,6 +86,7 @@ public class ScalaAkkaClientCodegen extends AbstractScalaCodegen implements Code outputFolder = "generated-code/scala-akka"; modelTemplateFiles.put("model.mustache", ".scala"); apiTemplateFiles.put("api.mustache", ".scala"); + modelDocTemplateFiles.put("model_doc.mustache", ".md"); embeddedTemplateDir = templateDir = "scala-akka-client"; apiPackage = mainPackage + ".api"; modelPackage = mainPackage + ".model"; @@ -164,6 +166,7 @@ public class ScalaAkkaClientCodegen extends AbstractScalaCodegen implements Code } } additionalProperties.put(CodegenConstants.INVOKER_PACKAGE, invokerPackage); + additionalProperties.put("modelDocPath", modelDocPath); supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); supportingFiles.add(new SupportingFile("build.sbt.mustache", "", "build.sbt")); @@ -360,4 +363,9 @@ public class ScalaAkkaClientCodegen extends AbstractScalaCodegen implements Code public void setMainPackage(String mainPackage) { this.configKeyPath = this.mainPackage = mainPackage; } + + @Override + public String modelDocFileFolder() { + return (outputFolder + File.separator + modelDocPath).replace('/', File.separatorChar); + } } diff --git a/modules/openapi-generator/src/main/resources/scala-akka-client/class_doc.mustache b/modules/openapi-generator/src/main/resources/scala-akka-client/class_doc.mustache new file mode 100644 index 000000000000..0cb62ce8fe5b --- /dev/null +++ b/modules/openapi-generator/src/main/resources/scala-akka-client/class_doc.mustache @@ -0,0 +1,32 @@ +# {{#vendorExtensions.x-is-one-of-interface}}Trait {{/vendorExtensions.x-is-one-of-interface}}{{classname}} + +{{#description}}{{&description}} +{{/description}} + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +{{#vars}}**{{name}}** | {{#isEnum}}[**{{datatypeWithEnum}}**](#{{datatypeWithEnum}}){{/isEnum}}{{^isEnum}}{{#isContainer}}{{#isArray}}{{#items}}{{#isModel}}[{{/isModel}}{{/items}}**{{baseType}}{{#items}}<{{dataType}}>**{{#isModel}}]({{^baseType}}{{dataType}}{{/baseType}}{{baseType}}.md){{/isModel}}{{/items}}{{/isArray}}{{#isMap}}{{#items}}{{#isModel}}[{{/isModel}}**Map<String, {{dataType}}>**{{#isModel}}]({{^baseType}}{{dataType}}{{/baseType}}{{baseType}}.md){{/isModel}}{{/items}}{{/isMap}}{{/isContainer}}{{^isContainer}}{{#isModel}}[{{/isModel}}**{{dataType}}**{{#isModel}}]({{^baseType}}{{dataType}}{{/baseType}}{{baseType}}.md){{/isModel}}{{/isContainer}}{{/isEnum}} | {{description}} | {{^required}} [optional]{{/required}}{{#isReadOnly}} [readonly]{{/isReadOnly}} +{{/vars}} +{{#vars}}{{#isEnum}} + +## Enum: {{datatypeWithEnum}} +Allowed values: {{#allowableValues}}[{{#values}}{{{.}}}{{^-last}}, {{/-last}}{{/values}}]{{/allowableValues}} + +{{/isEnum}}{{/vars}} +{{#vendorExtensions.x-implements.0}} + +## Implemented Interfaces + +{{#vendorExtensions.x-implements}} +* {{{.}}} +{{/vendorExtensions.x-implements}} +{{/vendorExtensions.x-implements.0}} +{{#vendorExtensions.x-is-one-of-interface}} +## Implementing Classes + +{{#oneOf}} +* {{{.}}} +{{/oneOf}} +{{/vendorExtensions.x-is-one-of-interface}} diff --git a/modules/openapi-generator/src/main/resources/scala-akka-client/enum_doc.mustache b/modules/openapi-generator/src/main/resources/scala-akka-client/enum_doc.mustache new file mode 100644 index 000000000000..20c512aaeae4 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/scala-akka-client/enum_doc.mustache @@ -0,0 +1,7 @@ +# {{classname}} + +## Enum + +{{#allowableValues}}{{#enumVars}} +* `{{name}}` (value: `{{{value}}}`) +{{/enumVars}}{{/allowableValues}} diff --git a/modules/openapi-generator/src/main/resources/scala-akka-client/model_doc.mustache b/modules/openapi-generator/src/main/resources/scala-akka-client/model_doc.mustache new file mode 100644 index 000000000000..e1025787793c --- /dev/null +++ b/modules/openapi-generator/src/main/resources/scala-akka-client/model_doc.mustache @@ -0,0 +1,9 @@ +{{#models}}{{#model}} + +{{#isEnum}} +{{>enum_doc}} +{{/isEnum}} +{{^isEnum}} +{{>class_doc}} +{{/isEnum}} +{{/model}}{{/models}} diff --git a/samples/client/petstore/scala-akka/.openapi-generator/FILES b/samples/client/petstore/scala-akka/.openapi-generator/FILES index 2cd9737cf183..a6dd935c232f 100644 --- a/samples/client/petstore/scala-akka/.openapi-generator/FILES +++ b/samples/client/petstore/scala-akka/.openapi-generator/FILES @@ -1,5 +1,11 @@ README.md build.sbt +docs/ApiResponse.md +docs/Category.md +docs/Order.md +docs/Pet.md +docs/Tag.md +docs/User.md project/build.properties src/main/resources/reference.conf src/main/scala/org/openapitools/client/api/EnumsSerializers.scala diff --git a/samples/client/petstore/scala-akka/README.md b/samples/client/petstore/scala-akka/README.md index cc830a260e35..ce96f93b1887 100644 --- a/samples/client/petstore/scala-akka/README.md +++ b/samples/client/petstore/scala-akka/README.md @@ -89,12 +89,12 @@ Class | Method | HTTP request | Description ## Documentation for Models - - [ApiResponse](ApiResponse.md) - - [Category](Category.md) - - [Order](Order.md) - - [Pet](Pet.md) - - [Tag](Tag.md) - - [User](User.md) + - [ApiResponse](docs/ApiResponse.md) + - [Category](docs/Category.md) + - [Order](docs/Order.md) + - [Pet](docs/Pet.md) + - [Tag](docs/Tag.md) + - [User](docs/User.md) ## Documentation for Authorization diff --git a/samples/client/petstore/scala-akka/docs/ApiResponse.md b/samples/client/petstore/scala-akka/docs/ApiResponse.md new file mode 100644 index 000000000000..bd174989f6f0 --- /dev/null +++ b/samples/client/petstore/scala-akka/docs/ApiResponse.md @@ -0,0 +1,16 @@ + + +# ApiResponse + +Describes the result of uploading an image resource + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**code** | **Int** | | [optional] +**`type`** | **String** | | [optional] +**message** | **String** | | [optional] + + + diff --git a/samples/client/petstore/scala-akka/docs/Category.md b/samples/client/petstore/scala-akka/docs/Category.md new file mode 100644 index 000000000000..6f5421307d51 --- /dev/null +++ b/samples/client/petstore/scala-akka/docs/Category.md @@ -0,0 +1,15 @@ + + +# Category + +A category for a pet + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **Long** | | [optional] +**name** | **String** | | [optional] + + + diff --git a/samples/client/petstore/scala-akka/docs/Order.md b/samples/client/petstore/scala-akka/docs/Order.md new file mode 100644 index 000000000000..2b9b49297531 --- /dev/null +++ b/samples/client/petstore/scala-akka/docs/Order.md @@ -0,0 +1,24 @@ + + +# Order + +An order for a pets from the pet store + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **Long** | | [optional] +**petId** | **Long** | | [optional] +**quantity** | **Int** | | [optional] +**shipDate** | **OffsetDateTime** | | [optional] +**status** | [**Status**](#Status) | Order Status | [optional] +**complete** | **Boolean** | | [optional] + + +## Enum: Status +Allowed values: [placed, approved, delivered] + + + + diff --git a/samples/client/petstore/scala-akka/docs/Pet.md b/samples/client/petstore/scala-akka/docs/Pet.md new file mode 100644 index 000000000000..2c65c5440df0 --- /dev/null +++ b/samples/client/petstore/scala-akka/docs/Pet.md @@ -0,0 +1,24 @@ + + +# Pet + +A pet for sale in the pet store + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **Long** | | [optional] +**category** | [**Category**](Category.md) | | [optional] +**name** | **String** | | +**photoUrls** | **Seq<String>** | | +**tags** | [**Seq<Tag>**](Tag.md) | | [optional] +**status** | [**Status**](#Status) | pet status in the store | [optional] + + +## Enum: Status +Allowed values: [available, pending, sold] + + + + diff --git a/samples/client/petstore/scala-akka/docs/Tag.md b/samples/client/petstore/scala-akka/docs/Tag.md new file mode 100644 index 000000000000..ae6756ef3935 --- /dev/null +++ b/samples/client/petstore/scala-akka/docs/Tag.md @@ -0,0 +1,15 @@ + + +# Tag + +A tag for a pet + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **Long** | | [optional] +**name** | **String** | | [optional] + + + diff --git a/samples/client/petstore/scala-akka/docs/User.md b/samples/client/petstore/scala-akka/docs/User.md new file mode 100644 index 000000000000..44bea4103d0d --- /dev/null +++ b/samples/client/petstore/scala-akka/docs/User.md @@ -0,0 +1,21 @@ + + +# User + +A User who is purchasing from the pet store + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **Long** | | [optional] +**username** | **String** | | [optional] +**firstName** | **String** | | [optional] +**lastName** | **String** | | [optional] +**email** | **String** | | [optional] +**password** | **String** | | [optional] +**phone** | **String** | | [optional] +**userStatus** | **Int** | User Status | [optional] + + +