From 54645dd61a0326905c4a4f50c53bc83823af9fba Mon Sep 17 00:00:00 2001 From: andrewwilsonnew Date: Wed, 26 Mar 2025 09:26:55 +0000 Subject: [PATCH 01/11] first pass --- .../languages/KotlinMiskServerCodegen.java | 47 +++++++------------ 1 file changed, 18 insertions(+), 29 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java index 41b5e9b86def..f62b32b6ca36 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java @@ -1,19 +1,3 @@ -/* - * Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - package org.openapitools.codegen.languages; import lombok.Setter; @@ -57,8 +41,7 @@ public class KotlinMiskServerCodegen extends AbstractKotlinCodegen implements Be protected String rootPackage = "org.openapitools.server.api"; protected String apiVersion = "1.0.0-SNAPSHOT"; - @Setter - protected String moduleClassName = "OpenApiModule"; + @Setter protected String moduleClassName = "OpenApiModule"; @Override public CodegenType getTag() { @@ -199,30 +182,36 @@ public boolean getUseBeanValidation() { } private String mapMediaType(String mediaType) { - return MEDIA_MAPPING.getOrDefault(mediaType, "MediaTypes.APPLICATION_OCTETSTREAM /* unknown -> " + mediaType + " */ "); + return MEDIA_MAPPING.getOrDefault(mediaType, "MediaTypes.APPLICATION_OCTETSTREAM /* @todo(unknown) -> " + mediaType + " */ "); } private final static Map MEDIA_MAPPING = getMappings(); private static Map getMappings() { + // add new values in order Map result = new HashMap<>(); - result.put("application/json", "MediaTypes.APPLICATION_JSON"); - result.put("application/xml", "MediaTypes.APPLICATION_XML"); - result.put("application/javascript", "MediaTypes.APPLICATION_JAVASCRIPT"); result.put("*/*", "MediaTypes.ALL"); - result.put("application/x-www-form-urlencoded", "MediaTypes.APPLICATION_FORM_URLENCODED"); + + result.put("application/grpc", "MediaTypes.APPLICATION_GRPC"); + result.put("application/javascript", "MediaTypes.APPLICATION_JAVASCRIPT"); + result.put("application/json", "MediaTypes.APPLICATION_JSON"); result.put("application/octetstream", "MediaTypes.APPLICATION_OCTETSTREAM"); result.put("application/pdf", "MediaTypes.APPLICATION_OCTETSTREAM"); result.put("application/x-protobuf", "MediaTypes.APPLICATION_PROTOBUF"); - result.put("application/grpc", "MediaTypes.APPLICATION_GRPC"); - result.put("text/css", "MediaTypes.TEXT_CSS"); - result.put("text/html", "MediaTypes.TEXT_HTML"); - result.put("text/plain", "MediaTypes.TEXT_PLAIN_UTF8"); + result.put("application/x-www-form-urlencoded", "MediaTypes.APPLICATION_FORM_URLENCODED"); + result.put("application/xml", "MediaTypes.APPLICATION_XML"); + result.put("application/zip", "MediaTypes.APPLICATION_ZIP"); + + result.put("image/gif", "MediaTypes.IMAGE_GIF"); + result.put("image/jpeg", "MediaTypes.IMAGE_JPEG"); result.put("image/png", "MediaTypes.IMAGE_PNG"); result.put("image/svg+xml", "MediaTypes.IMAGE_SVG"); - result.put("image/jpeg", "MediaTypes.IMAGE_JPEG"); - result.put("image/gif", "MediaTypes.IMAGE_GIF"); result.put("image/x-icon", "MediaTypes.IMAGE_ICO"); + + result.put("text/css", "MediaTypes.TEXT_CSS"); + result.put("text/html", "MediaTypes.TEXT_HTML"); + result.put("text/plain", "MediaTypes.TEXT_PLAIN_UTF8"); + return result; } } From cff7dbd4f0f5ce4d39a21a04490ea298a8847802 Mon Sep 17 00:00:00 2001 From: andrewwilsonnew Date: Wed, 26 Mar 2025 09:55:33 +0000 Subject: [PATCH 02/11] fixing types --- .../openapitools/codegen/languages/KotlinMiskServerCodegen.java | 2 ++ samples/server/petstore/kotlin-misk/docs/PetApi.md | 2 +- .../kotlin/org/openapitools/server/api/api/PetApiController.kt | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java index f62b32b6ca36..e9270aa971d4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java @@ -208,6 +208,8 @@ private static Map getMappings() { result.put("image/svg+xml", "MediaTypes.IMAGE_SVG"); result.put("image/x-icon", "MediaTypes.IMAGE_ICO"); + result.put("multipart/form-data", "MediaTypes.FORM_DATA"); + result.put("text/css", "MediaTypes.TEXT_CSS"); result.put("text/html", "MediaTypes.TEXT_HTML"); result.put("text/plain", "MediaTypes.TEXT_PLAIN_UTF8"); diff --git a/samples/server/petstore/kotlin-misk/docs/PetApi.md b/samples/server/petstore/kotlin-misk/docs/PetApi.md index 0e6c0c3b0613..3d7006790335 100644 --- a/samples/server/petstore/kotlin-misk/docs/PetApi.md +++ b/samples/server/petstore/kotlin-misk/docs/PetApi.md @@ -395,6 +395,6 @@ Name | Type | Description | Notes ### HTTP request headers - - **Content-Type**: MediaTypes.APPLICATION_OCTETSTREAM /* unknown -> multipart/form-data */ + - **Content-Type**: MediaTypes.FORM_DATA - **Accept**: MediaTypes.APPLICATION_JSON diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiController.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiController.kt index 2f302f2410db..f8338fca91f4 100644 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiController.kt +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiController.kt @@ -97,7 +97,7 @@ class PetApiController @Inject constructor( @Post("/pet/{petId}/uploadImage") @Description("uploads an image") - @RequestContentType(MediaTypes.APPLICATION_OCTETSTREAM /* unknown -> multipart/form-data */ ) + @RequestContentType(MediaTypes.FORM_DATA) @ResponseContentType(MediaTypes.APPLICATION_JSON) @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) override fun uploadFile(@PathParam("petId") petId: kotlin.Long, @QueryParam(value = "additionalMetadata") additionalMetadata: kotlin.String? , @Valid file: HttpCall): ModelApiResponse { From 03e9b47d1a2410af931830392ffb18e1a6b5e1bf Mon Sep 17 00:00:00 2001 From: andrewwilsonnew Date: Wed, 26 Mar 2025 10:03:48 +0000 Subject: [PATCH 03/11] fixing action --- .../languages/KotlinMiskServerCodegen.java | 2 +- ...Controller.mustache => apiAction.mustache} | 4 +- .../resources/kotlin-misk/api_test.mustache | 2 +- .../resources/kotlin-misk/miskModule.mustache | 4 +- .../openapitools/server/api/api/PetApiTest.kt | 98 ------------------- .../server/api/api/StoreApiTest.kt | 55 ----------- .../server/api/api/UserApiTest.kt | 93 ------------------ 7 files changed, 6 insertions(+), 252 deletions(-) rename modules/openapi-generator/src/main/resources/kotlin-misk/{apiController.mustache => apiAction.mustache} (94%) delete mode 100644 samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java index e9270aa971d4..a8eef597b0ec 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java @@ -105,7 +105,7 @@ public KotlinMiskServerCodegen() { supportingFiles.clear(); apiTemplateFiles.clear(); - apiTemplateFiles.put("apiController.mustache", "Controller.kt"); + apiTemplateFiles.put("apiAction.mustache", "Action.kt"); apiTemplateFiles.put("apiImpl.mustache", "Impl.kt"); apiTemplateFiles.put("apiInterface.mustache", ".kt"); modelTemplateFiles.put("model.mustache", ".kt"); diff --git a/modules/openapi-generator/src/main/resources/kotlin-misk/apiController.mustache b/modules/openapi-generator/src/main/resources/kotlin-misk/apiAction.mustache similarity index 94% rename from modules/openapi-generator/src/main/resources/kotlin-misk/apiController.mustache rename to modules/openapi-generator/src/main/resources/kotlin-misk/apiAction.mustache index 9c655f72d3a3..33096b107f74 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-misk/apiController.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-misk/apiAction.mustache @@ -34,10 +34,10 @@ import misk.web.mediatype.MediaTypes {{#operations}} /** - * Generated file, please change {{classname}}Controller. + * Generated file, please change {{classname}}Impl. */ @Singleton -class {{classname}}Controller @Inject constructor( +class {{classname}}Action @Inject constructor( private val {{#lambda.camelcase}}{{classname}}{{/lambda.camelcase}}: {{classname}} ) : WebAction, {{classname}} { {{#operation}} diff --git a/modules/openapi-generator/src/main/resources/kotlin-misk/api_test.mustache b/modules/openapi-generator/src/main/resources/kotlin-misk/api_test.mustache index a54748ce0bf2..c7246308eee7 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-misk/api_test.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-misk/api_test.mustache @@ -21,7 +21,7 @@ internal class {{classname}}Test { {{#operations}} {{#operation}} /** - * To test {{classname}}Controller.{{operationId}} + * To test {{classname}}Action.{{operationId}} */ @Test fun `should handle {{operationId}}`() { diff --git a/modules/openapi-generator/src/main/resources/kotlin-misk/miskModule.mustache b/modules/openapi-generator/src/main/resources/kotlin-misk/miskModule.mustache index 38d235b33a50..41eaf2349c0b 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-misk/miskModule.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-misk/miskModule.mustache @@ -6,7 +6,7 @@ import {{javaxPackage}}.inject.Singleton {{#apiInfo}} {{#apis}} {{#operations}} -import {{apiPackage}}.{{classname}}Controller +import {{apiPackage}}.{{classname}}Action {{/operations}} {{/apis}} {{/apiInfo}} @@ -17,7 +17,7 @@ class {{moduleClassName}} : KAbstractModule() { {{#apiInfo}} {{#apis}} {{#operations}} - install(WebActionModule.create<{{classname}}Controller>()) + install(WebActionModule.create<{{classname}}Action>()) {{/operations}} {{/apis}} {{/apiInfo}} diff --git a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt deleted file mode 100644 index 7df329bf7f66..000000000000 --- a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt +++ /dev/null @@ -1,98 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.inject.Inject -import misk.testing.MiskTest -import org.junit.jupiter.api.Test - -import misk.web.HttpCall -import misk.web.PathParam -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestHeader - -import org.openapitools.server.api.model.ModelApiResponse -import org.openapitools.server.api.model.Pet - -@MiskTest(startService = true) -internal class PetApiTest { - - @Inject private lateinit var petApi: PetApi - - /** - * To test PetApiController.addPet - */ - @Test - fun `should handle addPet`() { - val pet = TODO() - val response: Pet = petApi.addPet(pet) - } - - /** - * To test PetApiController.deletePet - */ - @Test - fun `should handle deletePet`() { - val petId = TODO() - val apiKey = TODO() - val response = petApi.deletePet(petId, apiKey) - } - - /** - * To test PetApiController.findPetsByStatus - */ - @Test - fun `should handle findPetsByStatus`() { - val status = TODO() - val response: kotlin.Array = petApi.findPetsByStatus(status) - } - - /** - * To test PetApiController.findPetsByTags - */ - @Test - fun `should handle findPetsByTags`() { - val tags = TODO() - val response: kotlin.Array = petApi.findPetsByTags(tags) - } - - /** - * To test PetApiController.getPetById - */ - @Test - fun `should handle getPetById`() { - val petId = TODO() - val response: Pet = petApi.getPetById(petId) - } - - /** - * To test PetApiController.updatePet - */ - @Test - fun `should handle updatePet`() { - val pet = TODO() - val response: Pet = petApi.updatePet(pet) - } - - /** - * To test PetApiController.updatePetWithForm - */ - @Test - fun `should handle updatePetWithForm`() { - val petId = TODO() - val name = TODO() - val status = TODO() - val response = petApi.updatePetWithForm(petId, name, status) - } - - /** - * To test PetApiController.uploadFile - */ - @Test - fun `should handle uploadFile`() { - val petId = TODO() - val additionalMetadata = TODO() - val file = TODO() - val response: ModelApiResponse = petApi.uploadFile(petId, additionalMetadata, file) - } - -} diff --git a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt deleted file mode 100644 index bc831cf9a2fd..000000000000 --- a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt +++ /dev/null @@ -1,55 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.inject.Inject -import misk.testing.MiskTest -import org.junit.jupiter.api.Test - -import misk.web.HttpCall -import misk.web.PathParam -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestHeader - -import org.openapitools.server.api.model.Order - -@MiskTest(startService = true) -internal class StoreApiTest { - - @Inject private lateinit var storeApi: StoreApi - - /** - * To test StoreApiController.deleteOrder - */ - @Test - fun `should handle deleteOrder`() { - val orderId = TODO() - val response = storeApi.deleteOrder(orderId) - } - - /** - * To test StoreApiController.getInventory - */ - @Test - fun `should handle getInventory`() { - val response: kotlin.collections.Map = storeApi.getInventory() - } - - /** - * To test StoreApiController.getOrderById - */ - @Test - fun `should handle getOrderById`() { - val orderId = TODO() - val response: Order = storeApi.getOrderById(orderId) - } - - /** - * To test StoreApiController.placeOrder - */ - @Test - fun `should handle placeOrder`() { - val order = TODO() - val response: Order = storeApi.placeOrder(order) - } - -} diff --git a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt deleted file mode 100644 index d3b5efc46c29..000000000000 --- a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt +++ /dev/null @@ -1,93 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.inject.Inject -import misk.testing.MiskTest -import org.junit.jupiter.api.Test - -import misk.web.HttpCall -import misk.web.PathParam -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestHeader - -import org.openapitools.server.api.model.User - -@MiskTest(startService = true) -internal class UserApiTest { - - @Inject private lateinit var userApi: UserApi - - /** - * To test UserApiController.createUser - */ - @Test - fun `should handle createUser`() { - val user = TODO() - val response = userApi.createUser(user) - } - - /** - * To test UserApiController.createUsersWithArrayInput - */ - @Test - fun `should handle createUsersWithArrayInput`() { - val user = TODO() - val response = userApi.createUsersWithArrayInput(user) - } - - /** - * To test UserApiController.createUsersWithListInput - */ - @Test - fun `should handle createUsersWithListInput`() { - val user = TODO() - val response = userApi.createUsersWithListInput(user) - } - - /** - * To test UserApiController.deleteUser - */ - @Test - fun `should handle deleteUser`() { - val username = TODO() - val response = userApi.deleteUser(username) - } - - /** - * To test UserApiController.getUserByName - */ - @Test - fun `should handle getUserByName`() { - val username = TODO() - val response: User = userApi.getUserByName(username) - } - - /** - * To test UserApiController.loginUser - */ - @Test - fun `should handle loginUser`() { - val username = TODO() - val password = TODO() - val response: kotlin.String = userApi.loginUser(username, password) - } - - /** - * To test UserApiController.logoutUser - */ - @Test - fun `should handle logoutUser`() { - val response = userApi.logoutUser() - } - - /** - * To test UserApiController.updateUser - */ - @Test - fun `should handle updateUser`() { - val username = TODO() - val user = TODO() - val response = userApi.updateUser(username, user) - } - -} From 787304a0be5c66e84ab7478c3b1259d2d16fb167 Mon Sep 17 00:00:00 2001 From: andrewwilsonnew Date: Wed, 26 Mar 2025 10:04:54 +0000 Subject: [PATCH 04/11] updating samples --- .../kotlin-misk/.openapi-generator/FILES | 9 +- .../server/api/api/PetStoreModule.kt | 12 +-- .../openapitools/server/api/api/PetApiTest.kt | 98 +++++++++++++++++++ .../server/api/api/StoreApiTest.kt | 55 +++++++++++ .../server/api/api/UserApiTest.kt | 93 ++++++++++++++++++ 5 files changed, 258 insertions(+), 9 deletions(-) create mode 100644 samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt create mode 100644 samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt create mode 100644 samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt diff --git a/samples/server/petstore/kotlin-misk/.openapi-generator/FILES b/samples/server/petstore/kotlin-misk/.openapi-generator/FILES index 6f07b4ceb390..02527936e040 100644 --- a/samples/server/petstore/kotlin-misk/.openapi-generator/FILES +++ b/samples/server/petstore/kotlin-misk/.openapi-generator/FILES @@ -11,14 +11,14 @@ docs/User.md docs/UserApi.md settings.gradle.kts src/main/kotlin/org/openapitools/server/api/api/PetApi.kt -src/main/kotlin/org/openapitools/server/api/api/PetApiController.kt +src/main/kotlin/org/openapitools/server/api/api/PetApiAction.kt src/main/kotlin/org/openapitools/server/api/api/PetApiImpl.kt src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt src/main/kotlin/org/openapitools/server/api/api/StoreApi.kt -src/main/kotlin/org/openapitools/server/api/api/StoreApiController.kt +src/main/kotlin/org/openapitools/server/api/api/StoreApiAction.kt src/main/kotlin/org/openapitools/server/api/api/StoreApiImpl.kt src/main/kotlin/org/openapitools/server/api/api/UserApi.kt -src/main/kotlin/org/openapitools/server/api/api/UserApiController.kt +src/main/kotlin/org/openapitools/server/api/api/UserApiAction.kt src/main/kotlin/org/openapitools/server/api/api/UserApiImpl.kt src/main/kotlin/org/openapitools/server/api/model/Category.kt src/main/kotlin/org/openapitools/server/api/model/ModelApiResponse.kt @@ -26,3 +26,6 @@ src/main/kotlin/org/openapitools/server/api/model/Order.kt src/main/kotlin/org/openapitools/server/api/model/Pet.kt src/main/kotlin/org/openapitools/server/api/model/Tag.kt src/main/kotlin/org/openapitools/server/api/model/User.kt +src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt +src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt +src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt index dd7be9862195..8fd723ef00d5 100644 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt @@ -3,15 +3,15 @@ package org.openapitools.server.api.api import misk.inject.KAbstractModule import misk.web.WebActionModule import jakarta.inject.Singleton -import org.openapitools.server.api.api.PetApiController -import org.openapitools.server.api.api.StoreApiController -import org.openapitools.server.api.api.UserApiController +import org.openapitools.server.api.api.PetApiAction +import org.openapitools.server.api.api.StoreApiAction +import org.openapitools.server.api.api.UserApiAction @Singleton class PetStoreModule : KAbstractModule() { override fun configure() { - install(WebActionModule.create()) - install(WebActionModule.create()) - install(WebActionModule.create()) + install(WebActionModule.create()) + install(WebActionModule.create()) + install(WebActionModule.create()) } } \ No newline at end of file diff --git a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt new file mode 100644 index 000000000000..148ff40fe47a --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt @@ -0,0 +1,98 @@ +package org.openapitools.server.api.api + +import jakarta.inject.Inject +import misk.testing.MiskTest +import org.junit.jupiter.api.Test + +import misk.web.HttpCall +import misk.web.PathParam +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestHeader + +import org.openapitools.server.api.model.ModelApiResponse +import org.openapitools.server.api.model.Pet + +@MiskTest(startService = true) +internal class PetApiTest { + + @Inject private lateinit var petApi: PetApi + + /** + * To test PetApiAction.addPet + */ + @Test + fun `should handle addPet`() { + val pet = TODO() + val response: Pet = petApi.addPet(pet) + } + + /** + * To test PetApiAction.deletePet + */ + @Test + fun `should handle deletePet`() { + val petId = TODO() + val apiKey = TODO() + val response = petApi.deletePet(petId, apiKey) + } + + /** + * To test PetApiAction.findPetsByStatus + */ + @Test + fun `should handle findPetsByStatus`() { + val status = TODO() + val response: kotlin.Array = petApi.findPetsByStatus(status) + } + + /** + * To test PetApiAction.findPetsByTags + */ + @Test + fun `should handle findPetsByTags`() { + val tags = TODO() + val response: kotlin.Array = petApi.findPetsByTags(tags) + } + + /** + * To test PetApiAction.getPetById + */ + @Test + fun `should handle getPetById`() { + val petId = TODO() + val response: Pet = petApi.getPetById(petId) + } + + /** + * To test PetApiAction.updatePet + */ + @Test + fun `should handle updatePet`() { + val pet = TODO() + val response: Pet = petApi.updatePet(pet) + } + + /** + * To test PetApiAction.updatePetWithForm + */ + @Test + fun `should handle updatePetWithForm`() { + val petId = TODO() + val name = TODO() + val status = TODO() + val response = petApi.updatePetWithForm(petId, name, status) + } + + /** + * To test PetApiAction.uploadFile + */ + @Test + fun `should handle uploadFile`() { + val petId = TODO() + val additionalMetadata = TODO() + val file = TODO() + val response: ModelApiResponse = petApi.uploadFile(petId, additionalMetadata, file) + } + +} diff --git a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt new file mode 100644 index 000000000000..f225ab26acee --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt @@ -0,0 +1,55 @@ +package org.openapitools.server.api.api + +import jakarta.inject.Inject +import misk.testing.MiskTest +import org.junit.jupiter.api.Test + +import misk.web.HttpCall +import misk.web.PathParam +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestHeader + +import org.openapitools.server.api.model.Order + +@MiskTest(startService = true) +internal class StoreApiTest { + + @Inject private lateinit var storeApi: StoreApi + + /** + * To test StoreApiAction.deleteOrder + */ + @Test + fun `should handle deleteOrder`() { + val orderId = TODO() + val response = storeApi.deleteOrder(orderId) + } + + /** + * To test StoreApiAction.getInventory + */ + @Test + fun `should handle getInventory`() { + val response: kotlin.collections.Map = storeApi.getInventory() + } + + /** + * To test StoreApiAction.getOrderById + */ + @Test + fun `should handle getOrderById`() { + val orderId = TODO() + val response: Order = storeApi.getOrderById(orderId) + } + + /** + * To test StoreApiAction.placeOrder + */ + @Test + fun `should handle placeOrder`() { + val order = TODO() + val response: Order = storeApi.placeOrder(order) + } + +} diff --git a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt new file mode 100644 index 000000000000..141087ecefce --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt @@ -0,0 +1,93 @@ +package org.openapitools.server.api.api + +import jakarta.inject.Inject +import misk.testing.MiskTest +import org.junit.jupiter.api.Test + +import misk.web.HttpCall +import misk.web.PathParam +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestHeader + +import org.openapitools.server.api.model.User + +@MiskTest(startService = true) +internal class UserApiTest { + + @Inject private lateinit var userApi: UserApi + + /** + * To test UserApiAction.createUser + */ + @Test + fun `should handle createUser`() { + val user = TODO() + val response = userApi.createUser(user) + } + + /** + * To test UserApiAction.createUsersWithArrayInput + */ + @Test + fun `should handle createUsersWithArrayInput`() { + val user = TODO() + val response = userApi.createUsersWithArrayInput(user) + } + + /** + * To test UserApiAction.createUsersWithListInput + */ + @Test + fun `should handle createUsersWithListInput`() { + val user = TODO() + val response = userApi.createUsersWithListInput(user) + } + + /** + * To test UserApiAction.deleteUser + */ + @Test + fun `should handle deleteUser`() { + val username = TODO() + val response = userApi.deleteUser(username) + } + + /** + * To test UserApiAction.getUserByName + */ + @Test + fun `should handle getUserByName`() { + val username = TODO() + val response: User = userApi.getUserByName(username) + } + + /** + * To test UserApiAction.loginUser + */ + @Test + fun `should handle loginUser`() { + val username = TODO() + val password = TODO() + val response: kotlin.String = userApi.loginUser(username, password) + } + + /** + * To test UserApiAction.logoutUser + */ + @Test + fun `should handle logoutUser`() { + val response = userApi.logoutUser() + } + + /** + * To test UserApiAction.updateUser + */ + @Test + fun `should handle updateUser`() { + val username = TODO() + val user = TODO() + val response = userApi.updateUser(username, user) + } + +} From 8888fbe1ffbd87ab38012b509fe587b37ab84b54 Mon Sep 17 00:00:00 2001 From: andrewwilsonnew Date: Wed, 26 Mar 2025 10:11:46 +0000 Subject: [PATCH 05/11] updating files --- samples/server/petstore/kotlin-misk/.openapi-generator/FILES | 3 --- 1 file changed, 3 deletions(-) diff --git a/samples/server/petstore/kotlin-misk/.openapi-generator/FILES b/samples/server/petstore/kotlin-misk/.openapi-generator/FILES index 02527936e040..ed8ab6f12320 100644 --- a/samples/server/petstore/kotlin-misk/.openapi-generator/FILES +++ b/samples/server/petstore/kotlin-misk/.openapi-generator/FILES @@ -26,6 +26,3 @@ src/main/kotlin/org/openapitools/server/api/model/Order.kt src/main/kotlin/org/openapitools/server/api/model/Pet.kt src/main/kotlin/org/openapitools/server/api/model/Tag.kt src/main/kotlin/org/openapitools/server/api/model/User.kt -src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt -src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt -src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt From 2e669823b59162e92b364110ce8aedb444d066d6 Mon Sep 17 00:00:00 2001 From: andrewwilsonnew Date: Wed, 26 Mar 2025 15:16:16 +0000 Subject: [PATCH 06/11] adding guido --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ad6f544c63b0..3fa2939f1126 100644 --- a/README.md +++ b/README.md @@ -1139,7 +1139,7 @@ Here is a list of template creators: * Kotlin (Spring Boot): @dr4ke616 * Kotlin (Vertx): @Wooyme * Kotlin (JAX-RS): @anttileppa - * Kotlin Misk: @andrewwilsonnew + * Kotlin Misk: @andrewwilsonnew @guiarn * Kotlin WireMock: @stefankoppier * NodeJS Express: @YishTish * PHP Flight: @daniel-sc From 1f56a8f52c1eb3fcf8a7dc04b55205c7a0d204c8 Mon Sep 17 00:00:00 2001 From: andrewwilsonnew Date: Thu, 3 Apr 2025 12:13:15 +0100 Subject: [PATCH 07/11] fixing misk --- .../src/main/resources/kotlin-misk/build.gradle.kts.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/resources/kotlin-misk/build.gradle.kts.mustache b/modules/openapi-generator/src/main/resources/kotlin-misk/build.gradle.kts.mustache index 0f5d4e865624..15467331036c 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-misk/build.gradle.kts.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-misk/build.gradle.kts.mustache @@ -9,7 +9,7 @@ version = "{{artifactVersion}}" dependencies { implementation("jakarta.validation:jakarta.validation-api:3.1.1") - implementation("com.squareup.misk:misk:2025.03.17.160337-2c6953c") + implementation("com.squareup.misk:misk:2025.04.02.195630-a61d550") //implementation("com.squareup.wire:wire-runtime:5.2.1") testImplementation("com.squareup.misk:misk-testing:2025.02.11.123913-8a41324") From 42aaaef2520301afd8bedb4517de6c13aef0af65 Mon Sep 17 00:00:00 2001 From: andrewwilsonnew Date: Thu, 3 Apr 2025 12:17:08 +0100 Subject: [PATCH 08/11] removing old files --- .../kotlin-misk/.openapi-generator/FILES | 3 + .../petstore/kotlin-misk/build.gradle.kts | 2 +- .../org/openapitools/server/api/api/PetApi.kt | 37 ------ .../server/api/api/PetApiController.kt | 106 ------------------ .../openapitools/server/api/api/PetApiImpl.kt | 60 ---------- .../server/api/api/PetStoreModule.kt | 17 --- .../openapitools/server/api/api/StoreApi.kt | 28 ----- .../server/api/api/StoreApiController.kt | 71 ------------ .../server/api/api/StoreApiImpl.kt | 43 ------- .../openapitools/server/api/api/UserApi.kt | 36 ------ .../server/api/api/UserApiController.kt | 101 ----------------- .../server/api/api/UserApiImpl.kt | 59 ---------- .../openapitools/server/api/model/Category.kt | 7 -- .../server/api/model/ModelApiResponse.kt | 8 -- .../openapitools/server/api/model/Order.kt | 12 -- .../org/openapitools/server/api/model/Pet.kt | 14 --- .../org/openapitools/server/api/model/Tag.kt | 7 -- .../org/openapitools/server/api/model/User.kt | 14 --- .../openapitools/server/api/api/PetApiTest.kt | 98 ---------------- .../server/api/api/StoreApiTest.kt | 55 --------- .../server/api/api/UserApiTest.kt | 93 --------------- 21 files changed, 4 insertions(+), 867 deletions(-) delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApi.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiController.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiImpl.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApi.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiController.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiImpl.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApi.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiController.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiImpl.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Category.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/ModelApiResponse.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Order.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Pet.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Tag.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/User.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt delete mode 100644 samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt diff --git a/samples/server/petstore/kotlin-misk/.openapi-generator/FILES b/samples/server/petstore/kotlin-misk/.openapi-generator/FILES index ed8ab6f12320..02527936e040 100644 --- a/samples/server/petstore/kotlin-misk/.openapi-generator/FILES +++ b/samples/server/petstore/kotlin-misk/.openapi-generator/FILES @@ -26,3 +26,6 @@ src/main/kotlin/org/openapitools/server/api/model/Order.kt src/main/kotlin/org/openapitools/server/api/model/Pet.kt src/main/kotlin/org/openapitools/server/api/model/Tag.kt src/main/kotlin/org/openapitools/server/api/model/User.kt +src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt +src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt +src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt diff --git a/samples/server/petstore/kotlin-misk/build.gradle.kts b/samples/server/petstore/kotlin-misk/build.gradle.kts index e831fc00dc94..84459bb4e501 100644 --- a/samples/server/petstore/kotlin-misk/build.gradle.kts +++ b/samples/server/petstore/kotlin-misk/build.gradle.kts @@ -9,7 +9,7 @@ version = "1.0.0-SNAPSHOT" dependencies { implementation("jakarta.validation:jakarta.validation-api:3.1.1") - implementation("com.squareup.misk:misk:2025.03.17.160337-2c6953c") + implementation("com.squareup.misk:misk:2025.04.02.195630-a61d550") //implementation("com.squareup.wire:wire-runtime:5.2.1") testImplementation("com.squareup.misk:misk-testing:2025.02.11.123913-8a41324") diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApi.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApi.kt deleted file mode 100644 index 788c07bf1c54..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApi.kt +++ /dev/null @@ -1,37 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.validation.Valid -import jakarta.validation.constraints.DecimalMax -import jakarta.validation.constraints.DecimalMin -import jakarta.validation.constraints.Email -import jakarta.validation.constraints.Max -import jakarta.validation.constraints.Min -import jakarta.validation.constraints.NotNull -import jakarta.validation.constraints.Pattern -import jakarta.validation.constraints.Size -import misk.web.HttpCall -import misk.web.PathParam -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestHeader -import org.openapitools.server.api.model.ModelApiResponse -import org.openapitools.server.api.model.Pet - -interface PetApi { - - fun addPet(@Valid @RequestBody pet: Pet): Pet - - fun deletePet(@PathParam("petId") petId: kotlin.Long, @RequestHeader(value = "api_key") apiKey: kotlin.String?) - - fun findPetsByStatus( @QueryParam(value = "status") status: kotlin.Array): kotlin.Array - - fun findPetsByTags( @QueryParam(value = "tags") tags: kotlin.Array): kotlin.Array - - fun getPetById(@PathParam("petId") petId: kotlin.Long): Pet - - fun updatePet(@Valid @RequestBody pet: Pet): Pet - - fun updatePetWithForm(@PathParam("petId") petId: kotlin.Long, @QueryParam(value = "name") name: kotlin.String? , @QueryParam(value = "status") status: kotlin.String? ) - - fun uploadFile(@PathParam("petId") petId: kotlin.Long, @QueryParam(value = "additionalMetadata") additionalMetadata: kotlin.String? , @Valid file: HttpCall): ModelApiResponse -} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiController.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiController.kt deleted file mode 100644 index f8338fca91f4..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiController.kt +++ /dev/null @@ -1,106 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.inject.Inject -import jakarta.inject.Singleton -import jakarta.validation.Valid -import jakarta.validation.constraints.DecimalMax -import jakarta.validation.constraints.DecimalMin -import jakarta.validation.constraints.Email -import jakarta.validation.constraints.Max -import jakarta.validation.constraints.Min -import jakarta.validation.constraints.NotNull -import jakarta.validation.constraints.Pattern -import jakarta.validation.constraints.Size -import misk.web.Delete -import misk.web.Description -import misk.web.Get -import misk.web.HttpCall -import misk.web.Patch -import misk.web.PathParam -import misk.web.Post -import misk.web.Put -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestContentType -import misk.web.RequestHeader -import misk.web.ResponseContentType -import misk.web.actions.WebAction -import misk.web.interceptors.LogRequestResponse -import misk.web.mediatype.MediaTypes -import org.openapitools.server.api.model.ModelApiResponse -import org.openapitools.server.api.model.Pet - -/** - * Generated file, please change PetApiController. - */ -@Singleton -class PetApiController @Inject constructor( - private val petApi: PetApi -) : WebAction, PetApi { - - @Post("/pet") - @Description("Add a new pet to the store") - @RequestContentType(MediaTypes.APPLICATION_JSON, MediaTypes.APPLICATION_XML) - @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun addPet(@Valid @RequestBody pet: Pet): Pet { - TODO() - } - - @Delete("/pet/{petId}") - @Description("Deletes a pet") - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun deletePet(@PathParam("petId") petId: kotlin.Long, @RequestHeader(value = "api_key") apiKey: kotlin.String?) { - TODO() - } - - @Get("/pet/findByStatus") - @Description("Finds Pets by status") - @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun findPetsByStatus( @QueryParam(value = "status") status: kotlin.Array): kotlin.Array { - TODO() - } - - @Get("/pet/findByTags") - @Description("Finds Pets by tags") - @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun findPetsByTags( @QueryParam(value = "tags") tags: kotlin.Array): kotlin.Array { - TODO() - } - - @Get("/pet/{petId}") - @Description("Find pet by ID") - @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun getPetById(@PathParam("petId") petId: kotlin.Long): Pet { - TODO() - } - - @Put("/pet") - @Description("Update an existing pet") - @RequestContentType(MediaTypes.APPLICATION_JSON, MediaTypes.APPLICATION_XML) - @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun updatePet(@Valid @RequestBody pet: Pet): Pet { - TODO() - } - - @Post("/pet/{petId}") - @Description("Updates a pet in the store with form data") - @RequestContentType(MediaTypes.APPLICATION_FORM_URLENCODED) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun updatePetWithForm(@PathParam("petId") petId: kotlin.Long, @QueryParam(value = "name") name: kotlin.String? , @QueryParam(value = "status") status: kotlin.String? ) { - TODO() - } - - @Post("/pet/{petId}/uploadImage") - @Description("uploads an image") - @RequestContentType(MediaTypes.FORM_DATA) - @ResponseContentType(MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun uploadFile(@PathParam("petId") petId: kotlin.Long, @QueryParam(value = "additionalMetadata") additionalMetadata: kotlin.String? , @Valid file: HttpCall): ModelApiResponse { - TODO() - } -} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiImpl.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiImpl.kt deleted file mode 100644 index 28f351fad098..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiImpl.kt +++ /dev/null @@ -1,60 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.inject.Inject -import jakarta.inject.Singleton -import jakarta.validation.Valid -import jakarta.validation.constraints.DecimalMax -import jakarta.validation.constraints.DecimalMin -import jakarta.validation.constraints.Email -import jakarta.validation.constraints.Max -import jakarta.validation.constraints.Min -import jakarta.validation.constraints.NotNull -import jakarta.validation.constraints.Pattern -import jakarta.validation.constraints.Size -import misk.web.HttpCall -import misk.web.PathParam -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestHeader -import org.openapitools.server.api.model.ModelApiResponse -import org.openapitools.server.api.model.Pet - -/** - * @TODO("Fill out implementation") - */ -@Singleton -class PetApiImpl @Inject constructor( -): PetApi { - - override fun addPet(@Valid @RequestBody pet: Pet): Pet { - TODO() - } - - override fun deletePet(@PathParam("petId") petId: kotlin.Long, @RequestHeader(value = "api_key") apiKey: kotlin.String?) { - TODO() - } - - override fun findPetsByStatus( @QueryParam(value = "status") status: kotlin.Array): kotlin.Array { - TODO() - } - - override fun findPetsByTags( @QueryParam(value = "tags") tags: kotlin.Array): kotlin.Array { - TODO() - } - - override fun getPetById(@PathParam("petId") petId: kotlin.Long): Pet { - TODO() - } - - override fun updatePet(@Valid @RequestBody pet: Pet): Pet { - TODO() - } - - override fun updatePetWithForm(@PathParam("petId") petId: kotlin.Long, @QueryParam(value = "name") name: kotlin.String? , @QueryParam(value = "status") status: kotlin.String? ) { - TODO() - } - - override fun uploadFile(@PathParam("petId") petId: kotlin.Long, @QueryParam(value = "additionalMetadata") additionalMetadata: kotlin.String? , @Valid file: HttpCall): ModelApiResponse { - TODO() - } -} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt deleted file mode 100644 index 8fd723ef00d5..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.openapitools.server.api.api - -import misk.inject.KAbstractModule -import misk.web.WebActionModule -import jakarta.inject.Singleton -import org.openapitools.server.api.api.PetApiAction -import org.openapitools.server.api.api.StoreApiAction -import org.openapitools.server.api.api.UserApiAction - -@Singleton -class PetStoreModule : KAbstractModule() { - override fun configure() { - install(WebActionModule.create()) - install(WebActionModule.create()) - install(WebActionModule.create()) - } -} \ No newline at end of file diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApi.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApi.kt deleted file mode 100644 index 178f1c9cdff8..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApi.kt +++ /dev/null @@ -1,28 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.validation.Valid -import jakarta.validation.constraints.DecimalMax -import jakarta.validation.constraints.DecimalMin -import jakarta.validation.constraints.Email -import jakarta.validation.constraints.Max -import jakarta.validation.constraints.Min -import jakarta.validation.constraints.NotNull -import jakarta.validation.constraints.Pattern -import jakarta.validation.constraints.Size -import misk.web.HttpCall -import misk.web.PathParam -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestHeader -import org.openapitools.server.api.model.Order - -interface StoreApi { - - fun deleteOrder(@PathParam("orderId") orderId: kotlin.String) - - fun getInventory(): kotlin.collections.Map - - fun getOrderById(@Min(1L) @Max(5L) @PathParam("orderId") orderId: kotlin.Long): Order - - fun placeOrder(@Valid @RequestBody order: Order): Order -} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiController.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiController.kt deleted file mode 100644 index 9d206cf5ae14..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiController.kt +++ /dev/null @@ -1,71 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.inject.Inject -import jakarta.inject.Singleton -import jakarta.validation.Valid -import jakarta.validation.constraints.DecimalMax -import jakarta.validation.constraints.DecimalMin -import jakarta.validation.constraints.Email -import jakarta.validation.constraints.Max -import jakarta.validation.constraints.Min -import jakarta.validation.constraints.NotNull -import jakarta.validation.constraints.Pattern -import jakarta.validation.constraints.Size -import misk.web.Delete -import misk.web.Description -import misk.web.Get -import misk.web.HttpCall -import misk.web.Patch -import misk.web.PathParam -import misk.web.Post -import misk.web.Put -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestContentType -import misk.web.RequestHeader -import misk.web.ResponseContentType -import misk.web.actions.WebAction -import misk.web.interceptors.LogRequestResponse -import misk.web.mediatype.MediaTypes -import org.openapitools.server.api.model.Order - -/** - * Generated file, please change StoreApiController. - */ -@Singleton -class StoreApiController @Inject constructor( - private val storeApi: StoreApi -) : WebAction, StoreApi { - - @Delete("/store/order/{orderId}") - @Description("Delete purchase order by ID") - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun deleteOrder(@PathParam("orderId") orderId: kotlin.String) { - TODO() - } - - @Get("/store/inventory") - @Description("Returns pet inventories by status") - @ResponseContentType(MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun getInventory(): kotlin.collections.Map { - TODO() - } - - @Get("/store/order/{orderId}") - @Description("Find purchase order by ID") - @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun getOrderById(@Min(1L) @Max(5L) @PathParam("orderId") orderId: kotlin.Long): Order { - TODO() - } - - @Post("/store/order") - @Description("Place an order for a pet") - @RequestContentType(MediaTypes.APPLICATION_JSON) - @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun placeOrder(@Valid @RequestBody order: Order): Order { - TODO() - } -} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiImpl.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiImpl.kt deleted file mode 100644 index e44f8bfb7ed6..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiImpl.kt +++ /dev/null @@ -1,43 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.inject.Inject -import jakarta.inject.Singleton -import jakarta.validation.Valid -import jakarta.validation.constraints.DecimalMax -import jakarta.validation.constraints.DecimalMin -import jakarta.validation.constraints.Email -import jakarta.validation.constraints.Max -import jakarta.validation.constraints.Min -import jakarta.validation.constraints.NotNull -import jakarta.validation.constraints.Pattern -import jakarta.validation.constraints.Size -import misk.web.HttpCall -import misk.web.PathParam -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestHeader -import org.openapitools.server.api.model.Order - -/** - * @TODO("Fill out implementation") - */ -@Singleton -class StoreApiImpl @Inject constructor( -): StoreApi { - - override fun deleteOrder(@PathParam("orderId") orderId: kotlin.String) { - TODO() - } - - override fun getInventory(): kotlin.collections.Map { - TODO() - } - - override fun getOrderById(@Min(1L) @Max(5L) @PathParam("orderId") orderId: kotlin.Long): Order { - TODO() - } - - override fun placeOrder(@Valid @RequestBody order: Order): Order { - TODO() - } -} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApi.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApi.kt deleted file mode 100644 index a0e71973d2bd..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApi.kt +++ /dev/null @@ -1,36 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.validation.Valid -import jakarta.validation.constraints.DecimalMax -import jakarta.validation.constraints.DecimalMin -import jakarta.validation.constraints.Email -import jakarta.validation.constraints.Max -import jakarta.validation.constraints.Min -import jakarta.validation.constraints.NotNull -import jakarta.validation.constraints.Pattern -import jakarta.validation.constraints.Size -import misk.web.HttpCall -import misk.web.PathParam -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestHeader -import org.openapitools.server.api.model.User - -interface UserApi { - - fun createUser(@Valid @RequestBody user: User) - - fun createUsersWithArrayInput(@Valid @RequestBody user: kotlin.Array) - - fun createUsersWithListInput(@Valid @RequestBody user: kotlin.Array) - - fun deleteUser(@PathParam("username") username: kotlin.String) - - fun getUserByName(@PathParam("username") username: kotlin.String): User - - fun loginUser( @QueryParam(value = "username") username: kotlin.String, @QueryParam(value = "password") password: kotlin.String): kotlin.String - - fun logoutUser() - - fun updateUser(@PathParam("username") username: kotlin.String, @Valid @RequestBody user: User) -} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiController.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiController.kt deleted file mode 100644 index 423d6f7bebd8..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiController.kt +++ /dev/null @@ -1,101 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.inject.Inject -import jakarta.inject.Singleton -import jakarta.validation.Valid -import jakarta.validation.constraints.DecimalMax -import jakarta.validation.constraints.DecimalMin -import jakarta.validation.constraints.Email -import jakarta.validation.constraints.Max -import jakarta.validation.constraints.Min -import jakarta.validation.constraints.NotNull -import jakarta.validation.constraints.Pattern -import jakarta.validation.constraints.Size -import misk.web.Delete -import misk.web.Description -import misk.web.Get -import misk.web.HttpCall -import misk.web.Patch -import misk.web.PathParam -import misk.web.Post -import misk.web.Put -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestContentType -import misk.web.RequestHeader -import misk.web.ResponseContentType -import misk.web.actions.WebAction -import misk.web.interceptors.LogRequestResponse -import misk.web.mediatype.MediaTypes -import org.openapitools.server.api.model.User - -/** - * Generated file, please change UserApiController. - */ -@Singleton -class UserApiController @Inject constructor( - private val userApi: UserApi -) : WebAction, UserApi { - - @Post("/user") - @Description("Create user") - @RequestContentType(MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun createUser(@Valid @RequestBody user: User) { - TODO() - } - - @Post("/user/createWithArray") - @Description("Creates list of users with given input array") - @RequestContentType(MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun createUsersWithArrayInput(@Valid @RequestBody user: kotlin.Array) { - TODO() - } - - @Post("/user/createWithList") - @Description("Creates list of users with given input array") - @RequestContentType(MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun createUsersWithListInput(@Valid @RequestBody user: kotlin.Array) { - TODO() - } - - @Delete("/user/{username}") - @Description("Delete user") - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun deleteUser(@PathParam("username") username: kotlin.String) { - TODO() - } - - @Get("/user/{username}") - @Description("Get user by user name") - @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun getUserByName(@PathParam("username") username: kotlin.String): User { - TODO() - } - - @Get("/user/login") - @Description("Logs user into the system") - @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun loginUser( @QueryParam(value = "username") username: kotlin.String, @QueryParam(value = "password") password: kotlin.String): kotlin.String { - TODO() - } - - @Get("/user/logout") - @Description("Logs out current logged in user session") - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun logoutUser() { - TODO() - } - - @Put("/user/{username}") - @Description("Updated user") - @RequestContentType(MediaTypes.APPLICATION_JSON) - @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) - override fun updateUser(@PathParam("username") username: kotlin.String, @Valid @RequestBody user: User) { - TODO() - } -} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiImpl.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiImpl.kt deleted file mode 100644 index 3c0843372ca2..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiImpl.kt +++ /dev/null @@ -1,59 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.inject.Inject -import jakarta.inject.Singleton -import jakarta.validation.Valid -import jakarta.validation.constraints.DecimalMax -import jakarta.validation.constraints.DecimalMin -import jakarta.validation.constraints.Email -import jakarta.validation.constraints.Max -import jakarta.validation.constraints.Min -import jakarta.validation.constraints.NotNull -import jakarta.validation.constraints.Pattern -import jakarta.validation.constraints.Size -import misk.web.HttpCall -import misk.web.PathParam -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestHeader -import org.openapitools.server.api.model.User - -/** - * @TODO("Fill out implementation") - */ -@Singleton -class UserApiImpl @Inject constructor( -): UserApi { - - override fun createUser(@Valid @RequestBody user: User) { - TODO() - } - - override fun createUsersWithArrayInput(@Valid @RequestBody user: kotlin.Array) { - TODO() - } - - override fun createUsersWithListInput(@Valid @RequestBody user: kotlin.Array) { - TODO() - } - - override fun deleteUser(@PathParam("username") username: kotlin.String) { - TODO() - } - - override fun getUserByName(@PathParam("username") username: kotlin.String): User { - TODO() - } - - override fun loginUser( @QueryParam(value = "username") username: kotlin.String, @QueryParam(value = "password") password: kotlin.String): kotlin.String { - TODO() - } - - override fun logoutUser() { - TODO() - } - - override fun updateUser(@PathParam("username") username: kotlin.String, @Valid @RequestBody user: User) { - TODO() - } -} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Category.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Category.kt deleted file mode 100644 index c644ae4fa871..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Category.kt +++ /dev/null @@ -1,7 +0,0 @@ -package org.openapitools.server.api.model - - -data class Category( - val id: kotlin.Long? = null, - val name: kotlin.String? = null -) diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/ModelApiResponse.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/ModelApiResponse.kt deleted file mode 100644 index ea896053fddd..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/ModelApiResponse.kt +++ /dev/null @@ -1,8 +0,0 @@ -package org.openapitools.server.api.model - - -data class ModelApiResponse( - val code: kotlin.Int? = null, - val type: kotlin.String? = null, - val message: kotlin.String? = null -) diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Order.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Order.kt deleted file mode 100644 index 5291b0fee3ab..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Order.kt +++ /dev/null @@ -1,12 +0,0 @@ -package org.openapitools.server.api.model - - -data class Order( - val id: kotlin.Long? = null, - val petId: kotlin.Long? = null, - val quantity: kotlin.Int? = null, - val shipDate: java.time.OffsetDateTime? = null, - /** Order Status */ - val status: kotlin.String? = null, - val complete: kotlin.Boolean? = false -) diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Pet.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Pet.kt deleted file mode 100644 index f5595bd1607e..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Pet.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.openapitools.server.api.model - -import org.openapitools.server.api.model.Category -import org.openapitools.server.api.model.Tag - -data class Pet( - val name: kotlin.String, - val photoUrls: kotlin.Array, - val id: kotlin.Long? = null, - val category: Category? = null, - val tags: kotlin.Array? = null, - /** pet status in the store */ - val status: kotlin.String? = null -) diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Tag.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Tag.kt deleted file mode 100644 index 4cccf63c02c1..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Tag.kt +++ /dev/null @@ -1,7 +0,0 @@ -package org.openapitools.server.api.model - - -data class Tag( - val id: kotlin.Long? = null, - val name: kotlin.String? = null -) diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/User.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/User.kt deleted file mode 100644 index 9ae43d194a0a..000000000000 --- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/User.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.openapitools.server.api.model - - -data class User( - val id: kotlin.Long? = null, - val username: kotlin.String? = null, - val firstName: kotlin.String? = null, - val lastName: kotlin.String? = null, - val email: kotlin.String? = null, - val password: kotlin.String? = null, - val phone: kotlin.String? = null, - /** User Status */ - val userStatus: kotlin.Int? = null -) diff --git a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt deleted file mode 100644 index 148ff40fe47a..000000000000 --- a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt +++ /dev/null @@ -1,98 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.inject.Inject -import misk.testing.MiskTest -import org.junit.jupiter.api.Test - -import misk.web.HttpCall -import misk.web.PathParam -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestHeader - -import org.openapitools.server.api.model.ModelApiResponse -import org.openapitools.server.api.model.Pet - -@MiskTest(startService = true) -internal class PetApiTest { - - @Inject private lateinit var petApi: PetApi - - /** - * To test PetApiAction.addPet - */ - @Test - fun `should handle addPet`() { - val pet = TODO() - val response: Pet = petApi.addPet(pet) - } - - /** - * To test PetApiAction.deletePet - */ - @Test - fun `should handle deletePet`() { - val petId = TODO() - val apiKey = TODO() - val response = petApi.deletePet(petId, apiKey) - } - - /** - * To test PetApiAction.findPetsByStatus - */ - @Test - fun `should handle findPetsByStatus`() { - val status = TODO() - val response: kotlin.Array = petApi.findPetsByStatus(status) - } - - /** - * To test PetApiAction.findPetsByTags - */ - @Test - fun `should handle findPetsByTags`() { - val tags = TODO() - val response: kotlin.Array = petApi.findPetsByTags(tags) - } - - /** - * To test PetApiAction.getPetById - */ - @Test - fun `should handle getPetById`() { - val petId = TODO() - val response: Pet = petApi.getPetById(petId) - } - - /** - * To test PetApiAction.updatePet - */ - @Test - fun `should handle updatePet`() { - val pet = TODO() - val response: Pet = petApi.updatePet(pet) - } - - /** - * To test PetApiAction.updatePetWithForm - */ - @Test - fun `should handle updatePetWithForm`() { - val petId = TODO() - val name = TODO() - val status = TODO() - val response = petApi.updatePetWithForm(petId, name, status) - } - - /** - * To test PetApiAction.uploadFile - */ - @Test - fun `should handle uploadFile`() { - val petId = TODO() - val additionalMetadata = TODO() - val file = TODO() - val response: ModelApiResponse = petApi.uploadFile(petId, additionalMetadata, file) - } - -} diff --git a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt deleted file mode 100644 index f225ab26acee..000000000000 --- a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt +++ /dev/null @@ -1,55 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.inject.Inject -import misk.testing.MiskTest -import org.junit.jupiter.api.Test - -import misk.web.HttpCall -import misk.web.PathParam -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestHeader - -import org.openapitools.server.api.model.Order - -@MiskTest(startService = true) -internal class StoreApiTest { - - @Inject private lateinit var storeApi: StoreApi - - /** - * To test StoreApiAction.deleteOrder - */ - @Test - fun `should handle deleteOrder`() { - val orderId = TODO() - val response = storeApi.deleteOrder(orderId) - } - - /** - * To test StoreApiAction.getInventory - */ - @Test - fun `should handle getInventory`() { - val response: kotlin.collections.Map = storeApi.getInventory() - } - - /** - * To test StoreApiAction.getOrderById - */ - @Test - fun `should handle getOrderById`() { - val orderId = TODO() - val response: Order = storeApi.getOrderById(orderId) - } - - /** - * To test StoreApiAction.placeOrder - */ - @Test - fun `should handle placeOrder`() { - val order = TODO() - val response: Order = storeApi.placeOrder(order) - } - -} diff --git a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt deleted file mode 100644 index 141087ecefce..000000000000 --- a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt +++ /dev/null @@ -1,93 +0,0 @@ -package org.openapitools.server.api.api - -import jakarta.inject.Inject -import misk.testing.MiskTest -import org.junit.jupiter.api.Test - -import misk.web.HttpCall -import misk.web.PathParam -import misk.web.QueryParam -import misk.web.RequestBody -import misk.web.RequestHeader - -import org.openapitools.server.api.model.User - -@MiskTest(startService = true) -internal class UserApiTest { - - @Inject private lateinit var userApi: UserApi - - /** - * To test UserApiAction.createUser - */ - @Test - fun `should handle createUser`() { - val user = TODO() - val response = userApi.createUser(user) - } - - /** - * To test UserApiAction.createUsersWithArrayInput - */ - @Test - fun `should handle createUsersWithArrayInput`() { - val user = TODO() - val response = userApi.createUsersWithArrayInput(user) - } - - /** - * To test UserApiAction.createUsersWithListInput - */ - @Test - fun `should handle createUsersWithListInput`() { - val user = TODO() - val response = userApi.createUsersWithListInput(user) - } - - /** - * To test UserApiAction.deleteUser - */ - @Test - fun `should handle deleteUser`() { - val username = TODO() - val response = userApi.deleteUser(username) - } - - /** - * To test UserApiAction.getUserByName - */ - @Test - fun `should handle getUserByName`() { - val username = TODO() - val response: User = userApi.getUserByName(username) - } - - /** - * To test UserApiAction.loginUser - */ - @Test - fun `should handle loginUser`() { - val username = TODO() - val password = TODO() - val response: kotlin.String = userApi.loginUser(username, password) - } - - /** - * To test UserApiAction.logoutUser - */ - @Test - fun `should handle logoutUser`() { - val response = userApi.logoutUser() - } - - /** - * To test UserApiAction.updateUser - */ - @Test - fun `should handle updateUser`() { - val username = TODO() - val user = TODO() - val response = userApi.updateUser(username, user) - } - -} From 981d81cbfd117766f99777addd64295e23c54b39 Mon Sep 17 00:00:00 2001 From: andrewwilsonnew Date: Thu, 3 Apr 2025 12:20:26 +0100 Subject: [PATCH 09/11] cleaning generated files --- .../org/openapitools/server/api/api/PetApi.kt | 37 ++++++ .../server/api/api/PetApiAction.kt | 106 ++++++++++++++++++ .../openapitools/server/api/api/PetApiImpl.kt | 60 ++++++++++ .../server/api/api/PetStoreModule.kt | 17 +++ .../openapitools/server/api/api/StoreApi.kt | 28 +++++ .../server/api/api/StoreApiAction.kt | 71 ++++++++++++ .../server/api/api/StoreApiImpl.kt | 43 +++++++ .../openapitools/server/api/api/UserApi.kt | 36 ++++++ .../server/api/api/UserApiAction.kt | 101 +++++++++++++++++ .../server/api/api/UserApiImpl.kt | 59 ++++++++++ .../openapitools/server/api/model/Category.kt | 7 ++ .../server/api/model/ModelApiResponse.kt | 8 ++ .../openapitools/server/api/model/Order.kt | 12 ++ .../org/openapitools/server/api/model/Pet.kt | 14 +++ .../org/openapitools/server/api/model/Tag.kt | 7 ++ .../org/openapitools/server/api/model/User.kt | 14 +++ .../openapitools/server/api/api/PetApiTest.kt | 98 ++++++++++++++++ .../server/api/api/StoreApiTest.kt | 55 +++++++++ .../server/api/api/UserApiTest.kt | 93 +++++++++++++++ 19 files changed, 866 insertions(+) create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApi.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiAction.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiImpl.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApi.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiAction.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiImpl.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApi.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiAction.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiImpl.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Category.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/ModelApiResponse.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Order.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Pet.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Tag.kt create mode 100644 samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/User.kt create mode 100644 samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt create mode 100644 samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt create mode 100644 samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApi.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApi.kt new file mode 100644 index 000000000000..788c07bf1c54 --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApi.kt @@ -0,0 +1,37 @@ +package org.openapitools.server.api.api + +import jakarta.validation.Valid +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import misk.web.HttpCall +import misk.web.PathParam +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestHeader +import org.openapitools.server.api.model.ModelApiResponse +import org.openapitools.server.api.model.Pet + +interface PetApi { + + fun addPet(@Valid @RequestBody pet: Pet): Pet + + fun deletePet(@PathParam("petId") petId: kotlin.Long, @RequestHeader(value = "api_key") apiKey: kotlin.String?) + + fun findPetsByStatus( @QueryParam(value = "status") status: kotlin.Array): kotlin.Array + + fun findPetsByTags( @QueryParam(value = "tags") tags: kotlin.Array): kotlin.Array + + fun getPetById(@PathParam("petId") petId: kotlin.Long): Pet + + fun updatePet(@Valid @RequestBody pet: Pet): Pet + + fun updatePetWithForm(@PathParam("petId") petId: kotlin.Long, @QueryParam(value = "name") name: kotlin.String? , @QueryParam(value = "status") status: kotlin.String? ) + + fun uploadFile(@PathParam("petId") petId: kotlin.Long, @QueryParam(value = "additionalMetadata") additionalMetadata: kotlin.String? , @Valid file: HttpCall): ModelApiResponse +} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiAction.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiAction.kt new file mode 100644 index 000000000000..cf73a2047cda --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiAction.kt @@ -0,0 +1,106 @@ +package org.openapitools.server.api.api + +import jakarta.inject.Inject +import jakarta.inject.Singleton +import jakarta.validation.Valid +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import misk.web.Delete +import misk.web.Description +import misk.web.Get +import misk.web.HttpCall +import misk.web.Patch +import misk.web.PathParam +import misk.web.Post +import misk.web.Put +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestContentType +import misk.web.RequestHeader +import misk.web.ResponseContentType +import misk.web.actions.WebAction +import misk.web.interceptors.LogRequestResponse +import misk.web.mediatype.MediaTypes +import org.openapitools.server.api.model.ModelApiResponse +import org.openapitools.server.api.model.Pet + +/** + * Generated file, please change PetApiImpl. + */ +@Singleton +class PetApiAction @Inject constructor( + private val petApi: PetApi +) : WebAction, PetApi { + + @Post("/pet") + @Description("Add a new pet to the store") + @RequestContentType(MediaTypes.APPLICATION_JSON, MediaTypes.APPLICATION_XML) + @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun addPet(@Valid @RequestBody pet: Pet): Pet { + TODO() + } + + @Delete("/pet/{petId}") + @Description("Deletes a pet") + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun deletePet(@PathParam("petId") petId: kotlin.Long, @RequestHeader(value = "api_key") apiKey: kotlin.String?) { + TODO() + } + + @Get("/pet/findByStatus") + @Description("Finds Pets by status") + @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun findPetsByStatus( @QueryParam(value = "status") status: kotlin.Array): kotlin.Array { + TODO() + } + + @Get("/pet/findByTags") + @Description("Finds Pets by tags") + @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun findPetsByTags( @QueryParam(value = "tags") tags: kotlin.Array): kotlin.Array { + TODO() + } + + @Get("/pet/{petId}") + @Description("Find pet by ID") + @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun getPetById(@PathParam("petId") petId: kotlin.Long): Pet { + TODO() + } + + @Put("/pet") + @Description("Update an existing pet") + @RequestContentType(MediaTypes.APPLICATION_JSON, MediaTypes.APPLICATION_XML) + @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun updatePet(@Valid @RequestBody pet: Pet): Pet { + TODO() + } + + @Post("/pet/{petId}") + @Description("Updates a pet in the store with form data") + @RequestContentType(MediaTypes.APPLICATION_FORM_URLENCODED) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun updatePetWithForm(@PathParam("petId") petId: kotlin.Long, @QueryParam(value = "name") name: kotlin.String? , @QueryParam(value = "status") status: kotlin.String? ) { + TODO() + } + + @Post("/pet/{petId}/uploadImage") + @Description("uploads an image") + @RequestContentType(MediaTypes.FORM_DATA) + @ResponseContentType(MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun uploadFile(@PathParam("petId") petId: kotlin.Long, @QueryParam(value = "additionalMetadata") additionalMetadata: kotlin.String? , @Valid file: HttpCall): ModelApiResponse { + TODO() + } +} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiImpl.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiImpl.kt new file mode 100644 index 000000000000..28f351fad098 --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiImpl.kt @@ -0,0 +1,60 @@ +package org.openapitools.server.api.api + +import jakarta.inject.Inject +import jakarta.inject.Singleton +import jakarta.validation.Valid +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import misk.web.HttpCall +import misk.web.PathParam +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestHeader +import org.openapitools.server.api.model.ModelApiResponse +import org.openapitools.server.api.model.Pet + +/** + * @TODO("Fill out implementation") + */ +@Singleton +class PetApiImpl @Inject constructor( +): PetApi { + + override fun addPet(@Valid @RequestBody pet: Pet): Pet { + TODO() + } + + override fun deletePet(@PathParam("petId") petId: kotlin.Long, @RequestHeader(value = "api_key") apiKey: kotlin.String?) { + TODO() + } + + override fun findPetsByStatus( @QueryParam(value = "status") status: kotlin.Array): kotlin.Array { + TODO() + } + + override fun findPetsByTags( @QueryParam(value = "tags") tags: kotlin.Array): kotlin.Array { + TODO() + } + + override fun getPetById(@PathParam("petId") petId: kotlin.Long): Pet { + TODO() + } + + override fun updatePet(@Valid @RequestBody pet: Pet): Pet { + TODO() + } + + override fun updatePetWithForm(@PathParam("petId") petId: kotlin.Long, @QueryParam(value = "name") name: kotlin.String? , @QueryParam(value = "status") status: kotlin.String? ) { + TODO() + } + + override fun uploadFile(@PathParam("petId") petId: kotlin.Long, @QueryParam(value = "additionalMetadata") additionalMetadata: kotlin.String? , @Valid file: HttpCall): ModelApiResponse { + TODO() + } +} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt new file mode 100644 index 000000000000..8fd723ef00d5 --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt @@ -0,0 +1,17 @@ +package org.openapitools.server.api.api + +import misk.inject.KAbstractModule +import misk.web.WebActionModule +import jakarta.inject.Singleton +import org.openapitools.server.api.api.PetApiAction +import org.openapitools.server.api.api.StoreApiAction +import org.openapitools.server.api.api.UserApiAction + +@Singleton +class PetStoreModule : KAbstractModule() { + override fun configure() { + install(WebActionModule.create()) + install(WebActionModule.create()) + install(WebActionModule.create()) + } +} \ No newline at end of file diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApi.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApi.kt new file mode 100644 index 000000000000..178f1c9cdff8 --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApi.kt @@ -0,0 +1,28 @@ +package org.openapitools.server.api.api + +import jakarta.validation.Valid +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import misk.web.HttpCall +import misk.web.PathParam +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestHeader +import org.openapitools.server.api.model.Order + +interface StoreApi { + + fun deleteOrder(@PathParam("orderId") orderId: kotlin.String) + + fun getInventory(): kotlin.collections.Map + + fun getOrderById(@Min(1L) @Max(5L) @PathParam("orderId") orderId: kotlin.Long): Order + + fun placeOrder(@Valid @RequestBody order: Order): Order +} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiAction.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiAction.kt new file mode 100644 index 000000000000..9a214c42a0d6 --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiAction.kt @@ -0,0 +1,71 @@ +package org.openapitools.server.api.api + +import jakarta.inject.Inject +import jakarta.inject.Singleton +import jakarta.validation.Valid +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import misk.web.Delete +import misk.web.Description +import misk.web.Get +import misk.web.HttpCall +import misk.web.Patch +import misk.web.PathParam +import misk.web.Post +import misk.web.Put +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestContentType +import misk.web.RequestHeader +import misk.web.ResponseContentType +import misk.web.actions.WebAction +import misk.web.interceptors.LogRequestResponse +import misk.web.mediatype.MediaTypes +import org.openapitools.server.api.model.Order + +/** + * Generated file, please change StoreApiImpl. + */ +@Singleton +class StoreApiAction @Inject constructor( + private val storeApi: StoreApi +) : WebAction, StoreApi { + + @Delete("/store/order/{orderId}") + @Description("Delete purchase order by ID") + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun deleteOrder(@PathParam("orderId") orderId: kotlin.String) { + TODO() + } + + @Get("/store/inventory") + @Description("Returns pet inventories by status") + @ResponseContentType(MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun getInventory(): kotlin.collections.Map { + TODO() + } + + @Get("/store/order/{orderId}") + @Description("Find purchase order by ID") + @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun getOrderById(@Min(1L) @Max(5L) @PathParam("orderId") orderId: kotlin.Long): Order { + TODO() + } + + @Post("/store/order") + @Description("Place an order for a pet") + @RequestContentType(MediaTypes.APPLICATION_JSON) + @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun placeOrder(@Valid @RequestBody order: Order): Order { + TODO() + } +} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiImpl.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiImpl.kt new file mode 100644 index 000000000000..e44f8bfb7ed6 --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/StoreApiImpl.kt @@ -0,0 +1,43 @@ +package org.openapitools.server.api.api + +import jakarta.inject.Inject +import jakarta.inject.Singleton +import jakarta.validation.Valid +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import misk.web.HttpCall +import misk.web.PathParam +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestHeader +import org.openapitools.server.api.model.Order + +/** + * @TODO("Fill out implementation") + */ +@Singleton +class StoreApiImpl @Inject constructor( +): StoreApi { + + override fun deleteOrder(@PathParam("orderId") orderId: kotlin.String) { + TODO() + } + + override fun getInventory(): kotlin.collections.Map { + TODO() + } + + override fun getOrderById(@Min(1L) @Max(5L) @PathParam("orderId") orderId: kotlin.Long): Order { + TODO() + } + + override fun placeOrder(@Valid @RequestBody order: Order): Order { + TODO() + } +} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApi.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApi.kt new file mode 100644 index 000000000000..a0e71973d2bd --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApi.kt @@ -0,0 +1,36 @@ +package org.openapitools.server.api.api + +import jakarta.validation.Valid +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import misk.web.HttpCall +import misk.web.PathParam +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestHeader +import org.openapitools.server.api.model.User + +interface UserApi { + + fun createUser(@Valid @RequestBody user: User) + + fun createUsersWithArrayInput(@Valid @RequestBody user: kotlin.Array) + + fun createUsersWithListInput(@Valid @RequestBody user: kotlin.Array) + + fun deleteUser(@PathParam("username") username: kotlin.String) + + fun getUserByName(@PathParam("username") username: kotlin.String): User + + fun loginUser( @QueryParam(value = "username") username: kotlin.String, @QueryParam(value = "password") password: kotlin.String): kotlin.String + + fun logoutUser() + + fun updateUser(@PathParam("username") username: kotlin.String, @Valid @RequestBody user: User) +} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiAction.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiAction.kt new file mode 100644 index 000000000000..2fd31911598d --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiAction.kt @@ -0,0 +1,101 @@ +package org.openapitools.server.api.api + +import jakarta.inject.Inject +import jakarta.inject.Singleton +import jakarta.validation.Valid +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import misk.web.Delete +import misk.web.Description +import misk.web.Get +import misk.web.HttpCall +import misk.web.Patch +import misk.web.PathParam +import misk.web.Post +import misk.web.Put +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestContentType +import misk.web.RequestHeader +import misk.web.ResponseContentType +import misk.web.actions.WebAction +import misk.web.interceptors.LogRequestResponse +import misk.web.mediatype.MediaTypes +import org.openapitools.server.api.model.User + +/** + * Generated file, please change UserApiImpl. + */ +@Singleton +class UserApiAction @Inject constructor( + private val userApi: UserApi +) : WebAction, UserApi { + + @Post("/user") + @Description("Create user") + @RequestContentType(MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun createUser(@Valid @RequestBody user: User) { + TODO() + } + + @Post("/user/createWithArray") + @Description("Creates list of users with given input array") + @RequestContentType(MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun createUsersWithArrayInput(@Valid @RequestBody user: kotlin.Array) { + TODO() + } + + @Post("/user/createWithList") + @Description("Creates list of users with given input array") + @RequestContentType(MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun createUsersWithListInput(@Valid @RequestBody user: kotlin.Array) { + TODO() + } + + @Delete("/user/{username}") + @Description("Delete user") + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun deleteUser(@PathParam("username") username: kotlin.String) { + TODO() + } + + @Get("/user/{username}") + @Description("Get user by user name") + @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun getUserByName(@PathParam("username") username: kotlin.String): User { + TODO() + } + + @Get("/user/login") + @Description("Logs user into the system") + @ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun loginUser( @QueryParam(value = "username") username: kotlin.String, @QueryParam(value = "password") password: kotlin.String): kotlin.String { + TODO() + } + + @Get("/user/logout") + @Description("Logs out current logged in user session") + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun logoutUser() { + TODO() + } + + @Put("/user/{username}") + @Description("Updated user") + @RequestContentType(MediaTypes.APPLICATION_JSON) + @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0) + override fun updateUser(@PathParam("username") username: kotlin.String, @Valid @RequestBody user: User) { + TODO() + } +} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiImpl.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiImpl.kt new file mode 100644 index 000000000000..3c0843372ca2 --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/UserApiImpl.kt @@ -0,0 +1,59 @@ +package org.openapitools.server.api.api + +import jakarta.inject.Inject +import jakarta.inject.Singleton +import jakarta.validation.Valid +import jakarta.validation.constraints.DecimalMax +import jakarta.validation.constraints.DecimalMin +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.Max +import jakarta.validation.constraints.Min +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size +import misk.web.HttpCall +import misk.web.PathParam +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestHeader +import org.openapitools.server.api.model.User + +/** + * @TODO("Fill out implementation") + */ +@Singleton +class UserApiImpl @Inject constructor( +): UserApi { + + override fun createUser(@Valid @RequestBody user: User) { + TODO() + } + + override fun createUsersWithArrayInput(@Valid @RequestBody user: kotlin.Array) { + TODO() + } + + override fun createUsersWithListInput(@Valid @RequestBody user: kotlin.Array) { + TODO() + } + + override fun deleteUser(@PathParam("username") username: kotlin.String) { + TODO() + } + + override fun getUserByName(@PathParam("username") username: kotlin.String): User { + TODO() + } + + override fun loginUser( @QueryParam(value = "username") username: kotlin.String, @QueryParam(value = "password") password: kotlin.String): kotlin.String { + TODO() + } + + override fun logoutUser() { + TODO() + } + + override fun updateUser(@PathParam("username") username: kotlin.String, @Valid @RequestBody user: User) { + TODO() + } +} diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Category.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Category.kt new file mode 100644 index 000000000000..c644ae4fa871 --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Category.kt @@ -0,0 +1,7 @@ +package org.openapitools.server.api.model + + +data class Category( + val id: kotlin.Long? = null, + val name: kotlin.String? = null +) diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/ModelApiResponse.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/ModelApiResponse.kt new file mode 100644 index 000000000000..ea896053fddd --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/ModelApiResponse.kt @@ -0,0 +1,8 @@ +package org.openapitools.server.api.model + + +data class ModelApiResponse( + val code: kotlin.Int? = null, + val type: kotlin.String? = null, + val message: kotlin.String? = null +) diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Order.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Order.kt new file mode 100644 index 000000000000..5291b0fee3ab --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Order.kt @@ -0,0 +1,12 @@ +package org.openapitools.server.api.model + + +data class Order( + val id: kotlin.Long? = null, + val petId: kotlin.Long? = null, + val quantity: kotlin.Int? = null, + val shipDate: java.time.OffsetDateTime? = null, + /** Order Status */ + val status: kotlin.String? = null, + val complete: kotlin.Boolean? = false +) diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Pet.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Pet.kt new file mode 100644 index 000000000000..f5595bd1607e --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Pet.kt @@ -0,0 +1,14 @@ +package org.openapitools.server.api.model + +import org.openapitools.server.api.model.Category +import org.openapitools.server.api.model.Tag + +data class Pet( + val name: kotlin.String, + val photoUrls: kotlin.Array, + val id: kotlin.Long? = null, + val category: Category? = null, + val tags: kotlin.Array? = null, + /** pet status in the store */ + val status: kotlin.String? = null +) diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Tag.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Tag.kt new file mode 100644 index 000000000000..4cccf63c02c1 --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/Tag.kt @@ -0,0 +1,7 @@ +package org.openapitools.server.api.model + + +data class Tag( + val id: kotlin.Long? = null, + val name: kotlin.String? = null +) diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/User.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/User.kt new file mode 100644 index 000000000000..9ae43d194a0a --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/User.kt @@ -0,0 +1,14 @@ +package org.openapitools.server.api.model + + +data class User( + val id: kotlin.Long? = null, + val username: kotlin.String? = null, + val firstName: kotlin.String? = null, + val lastName: kotlin.String? = null, + val email: kotlin.String? = null, + val password: kotlin.String? = null, + val phone: kotlin.String? = null, + /** User Status */ + val userStatus: kotlin.Int? = null +) diff --git a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt new file mode 100644 index 000000000000..148ff40fe47a --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt @@ -0,0 +1,98 @@ +package org.openapitools.server.api.api + +import jakarta.inject.Inject +import misk.testing.MiskTest +import org.junit.jupiter.api.Test + +import misk.web.HttpCall +import misk.web.PathParam +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestHeader + +import org.openapitools.server.api.model.ModelApiResponse +import org.openapitools.server.api.model.Pet + +@MiskTest(startService = true) +internal class PetApiTest { + + @Inject private lateinit var petApi: PetApi + + /** + * To test PetApiAction.addPet + */ + @Test + fun `should handle addPet`() { + val pet = TODO() + val response: Pet = petApi.addPet(pet) + } + + /** + * To test PetApiAction.deletePet + */ + @Test + fun `should handle deletePet`() { + val petId = TODO() + val apiKey = TODO() + val response = petApi.deletePet(petId, apiKey) + } + + /** + * To test PetApiAction.findPetsByStatus + */ + @Test + fun `should handle findPetsByStatus`() { + val status = TODO() + val response: kotlin.Array = petApi.findPetsByStatus(status) + } + + /** + * To test PetApiAction.findPetsByTags + */ + @Test + fun `should handle findPetsByTags`() { + val tags = TODO() + val response: kotlin.Array = petApi.findPetsByTags(tags) + } + + /** + * To test PetApiAction.getPetById + */ + @Test + fun `should handle getPetById`() { + val petId = TODO() + val response: Pet = petApi.getPetById(petId) + } + + /** + * To test PetApiAction.updatePet + */ + @Test + fun `should handle updatePet`() { + val pet = TODO() + val response: Pet = petApi.updatePet(pet) + } + + /** + * To test PetApiAction.updatePetWithForm + */ + @Test + fun `should handle updatePetWithForm`() { + val petId = TODO() + val name = TODO() + val status = TODO() + val response = petApi.updatePetWithForm(petId, name, status) + } + + /** + * To test PetApiAction.uploadFile + */ + @Test + fun `should handle uploadFile`() { + val petId = TODO() + val additionalMetadata = TODO() + val file = TODO() + val response: ModelApiResponse = petApi.uploadFile(petId, additionalMetadata, file) + } + +} diff --git a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt new file mode 100644 index 000000000000..f225ab26acee --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt @@ -0,0 +1,55 @@ +package org.openapitools.server.api.api + +import jakarta.inject.Inject +import misk.testing.MiskTest +import org.junit.jupiter.api.Test + +import misk.web.HttpCall +import misk.web.PathParam +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestHeader + +import org.openapitools.server.api.model.Order + +@MiskTest(startService = true) +internal class StoreApiTest { + + @Inject private lateinit var storeApi: StoreApi + + /** + * To test StoreApiAction.deleteOrder + */ + @Test + fun `should handle deleteOrder`() { + val orderId = TODO() + val response = storeApi.deleteOrder(orderId) + } + + /** + * To test StoreApiAction.getInventory + */ + @Test + fun `should handle getInventory`() { + val response: kotlin.collections.Map = storeApi.getInventory() + } + + /** + * To test StoreApiAction.getOrderById + */ + @Test + fun `should handle getOrderById`() { + val orderId = TODO() + val response: Order = storeApi.getOrderById(orderId) + } + + /** + * To test StoreApiAction.placeOrder + */ + @Test + fun `should handle placeOrder`() { + val order = TODO() + val response: Order = storeApi.placeOrder(order) + } + +} diff --git a/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt new file mode 100644 index 000000000000..141087ecefce --- /dev/null +++ b/samples/server/petstore/kotlin-misk/src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt @@ -0,0 +1,93 @@ +package org.openapitools.server.api.api + +import jakarta.inject.Inject +import misk.testing.MiskTest +import org.junit.jupiter.api.Test + +import misk.web.HttpCall +import misk.web.PathParam +import misk.web.QueryParam +import misk.web.RequestBody +import misk.web.RequestHeader + +import org.openapitools.server.api.model.User + +@MiskTest(startService = true) +internal class UserApiTest { + + @Inject private lateinit var userApi: UserApi + + /** + * To test UserApiAction.createUser + */ + @Test + fun `should handle createUser`() { + val user = TODO() + val response = userApi.createUser(user) + } + + /** + * To test UserApiAction.createUsersWithArrayInput + */ + @Test + fun `should handle createUsersWithArrayInput`() { + val user = TODO() + val response = userApi.createUsersWithArrayInput(user) + } + + /** + * To test UserApiAction.createUsersWithListInput + */ + @Test + fun `should handle createUsersWithListInput`() { + val user = TODO() + val response = userApi.createUsersWithListInput(user) + } + + /** + * To test UserApiAction.deleteUser + */ + @Test + fun `should handle deleteUser`() { + val username = TODO() + val response = userApi.deleteUser(username) + } + + /** + * To test UserApiAction.getUserByName + */ + @Test + fun `should handle getUserByName`() { + val username = TODO() + val response: User = userApi.getUserByName(username) + } + + /** + * To test UserApiAction.loginUser + */ + @Test + fun `should handle loginUser`() { + val username = TODO() + val password = TODO() + val response: kotlin.String = userApi.loginUser(username, password) + } + + /** + * To test UserApiAction.logoutUser + */ + @Test + fun `should handle logoutUser`() { + val response = userApi.logoutUser() + } + + /** + * To test UserApiAction.updateUser + */ + @Test + fun `should handle updateUser`() { + val username = TODO() + val user = TODO() + val response = userApi.updateUser(username, user) + } + +} From 53514b9fe37cb89fba7482960b2f45ea78c5f5dd Mon Sep 17 00:00:00 2001 From: andrewwilsonnew Date: Thu, 3 Apr 2025 12:29:30 +0100 Subject: [PATCH 10/11] cleaning generated files --- samples/server/petstore/kotlin-misk/.openapi-generator/FILES | 3 --- 1 file changed, 3 deletions(-) diff --git a/samples/server/petstore/kotlin-misk/.openapi-generator/FILES b/samples/server/petstore/kotlin-misk/.openapi-generator/FILES index 02527936e040..ed8ab6f12320 100644 --- a/samples/server/petstore/kotlin-misk/.openapi-generator/FILES +++ b/samples/server/petstore/kotlin-misk/.openapi-generator/FILES @@ -26,6 +26,3 @@ src/main/kotlin/org/openapitools/server/api/model/Order.kt src/main/kotlin/org/openapitools/server/api/model/Pet.kt src/main/kotlin/org/openapitools/server/api/model/Tag.kt src/main/kotlin/org/openapitools/server/api/model/User.kt -src/test/kotlin/org/openapitools/server/api/api/PetApiTest.kt -src/test/kotlin/org/openapitools/server/api/api/StoreApiTest.kt -src/test/kotlin/org/openapitools/server/api/api/UserApiTest.kt From 3e0077a03e52a0efcdb3bc3817c348ac09c1227e Mon Sep 17 00:00:00 2001 From: andrewwilsonnew Date: Thu, 3 Apr 2025 12:54:20 +0100 Subject: [PATCH 11/11] adding back in license --- .../languages/KotlinMiskServerCodegen.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java index a8eef597b0ec..ced734ba4eb3 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinMiskServerCodegen.java @@ -1,3 +1,19 @@ +/* + * Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.openapitools.codegen.languages; import lombok.Setter;