From 7f8118069efea22d7bd68495d37cc560049bf9b7 Mon Sep 17 00:00:00 2001 From: adg-mh <40580891+adg-mh@users.noreply.github.com> Date: Thu, 14 May 2020 20:02:25 -0500 Subject: [PATCH] Allow passing progress callbacks through client methods. (#6261) --- .../src/main/resources/dart-dio/api.mustache | 4 ++- .../petstore/dart-dio/lib/api/pet_api.dart | 32 ++++++++++++++----- .../petstore/dart-dio/lib/api/store_api.dart | 16 +++++++--- .../petstore/dart-dio/lib/api/user_api.dart | 32 ++++++++++++++----- 4 files changed, 63 insertions(+), 21 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/dart-dio/api.mustache b/modules/openapi-generator/src/main/resources/dart-dio/api.mustache index fc1aa2f6bf5..5431834c9c1 100644 --- a/modules/openapi-generator/src/main/resources/dart-dio/api.mustache +++ b/modules/openapi-generator/src/main/resources/dart-dio/api.mustache @@ -21,7 +21,7 @@ class {{classname}} { /// {{summary}} /// /// {{notes}} - Future{{/returnType}}>{{nickname}}({{#allParams}}{{#required}}{{{dataType}}} {{paramName}},{{/required}}{{/allParams}}{ {{#allParams}}{{^required}}{{{dataType}}} {{paramName}},{{/required}}{{/allParams}}CancelToken cancelToken, Map headers,}) async { + Future{{/returnType}}>{{nickname}}({{#allParams}}{{#required}}{{{dataType}}} {{paramName}},{{/required}}{{/allParams}}{ {{#allParams}}{{^required}}{{{dataType}}} {{paramName}},{{/required}}{{/allParams}}CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "{{{path}}}"{{#pathParams}}.replaceAll("{" r'{{baseName}}' "}", {{{paramName}}}.toString()){{/pathParams}}; @@ -90,6 +90,8 @@ class {{classname}} { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ){{#returnType}}.then((response) { {{#isResponseFile}} diff --git a/samples/client/petstore/dart-dio/lib/api/pet_api.dart b/samples/client/petstore/dart-dio/lib/api/pet_api.dart index e106b151030..7d714d1ddc3 100644 --- a/samples/client/petstore/dart-dio/lib/api/pet_api.dart +++ b/samples/client/petstore/dart-dio/lib/api/pet_api.dart @@ -19,7 +19,7 @@ class PetApi { /// Add a new pet to the store /// /// - FutureaddPet(Pet body,{ CancelToken cancelToken, Map headers,}) async { + FutureaddPet(Pet body,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/pet"; @@ -50,12 +50,14 @@ class PetApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ); } /// Deletes a pet /// /// - FuturedeletePet(int petId,{ String apiKey,CancelToken cancelToken, Map headers,}) async { + FuturedeletePet(int petId,{ String apiKey,CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/pet/{petId}".replaceAll("{" r'petId' "}", petId.toString()); @@ -84,12 +86,14 @@ class PetApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ); } /// Finds Pets by status /// /// Multiple status values can be provided with comma separated strings - Future>>findPetsByStatus(List status,{ CancelToken cancelToken, Map headers,}) async { + Future>>findPetsByStatus(List status,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/pet/findByStatus"; @@ -118,6 +122,8 @@ class PetApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ).then((response) { final FullType type = const FullType(BuiltList, const [const FullType(Pet)]); @@ -138,7 +144,7 @@ class PetApi { /// Finds Pets by tags /// /// Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. - Future>>findPetsByTags(List tags,{ CancelToken cancelToken, Map headers,}) async { + Future>>findPetsByTags(List tags,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/pet/findByTags"; @@ -167,6 +173,8 @@ class PetApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ).then((response) { final FullType type = const FullType(BuiltList, const [const FullType(Pet)]); @@ -187,7 +195,7 @@ class PetApi { /// Find pet by ID /// /// Returns a single pet - Future>getPetById(int petId,{ CancelToken cancelToken, Map headers,}) async { + Future>getPetById(int petId,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/pet/{petId}".replaceAll("{" r'petId' "}", petId.toString()); @@ -215,6 +223,8 @@ class PetApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ).then((response) { var serializer = _serializers.serializerForType(Pet); @@ -234,7 +244,7 @@ class PetApi { /// Update an existing pet /// /// - FutureupdatePet(Pet body,{ CancelToken cancelToken, Map headers,}) async { + FutureupdatePet(Pet body,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/pet"; @@ -265,12 +275,14 @@ class PetApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ); } /// Updates a pet in the store with form data /// /// - FutureupdatePetWithForm(int petId,{ String name,String status,CancelToken cancelToken, Map headers,}) async { + FutureupdatePetWithForm(int petId,{ String name,String status,CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/pet/{petId}".replaceAll("{" r'petId' "}", petId.toString()); @@ -302,12 +314,14 @@ class PetApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ); } /// uploads an image /// /// - Future>uploadFile(int petId,{ String additionalMetadata,Uint8List file,CancelToken cancelToken, Map headers,}) async { + Future>uploadFile(int petId,{ String additionalMetadata,Uint8List file,CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/pet/{petId}/uploadImage".replaceAll("{" r'petId' "}", petId.toString()); @@ -343,6 +357,8 @@ class PetApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ).then((response) { var serializer = _serializers.serializerForType(ApiResponse); diff --git a/samples/client/petstore/dart-dio/lib/api/store_api.dart b/samples/client/petstore/dart-dio/lib/api/store_api.dart index 09bc26ab068..f12cce29910 100644 --- a/samples/client/petstore/dart-dio/lib/api/store_api.dart +++ b/samples/client/petstore/dart-dio/lib/api/store_api.dart @@ -16,7 +16,7 @@ class StoreApi { /// Delete purchase order by ID /// /// For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors - FuturedeleteOrder(String orderId,{ CancelToken cancelToken, Map headers,}) async { + FuturedeleteOrder(String orderId,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/store/order/{orderId}".replaceAll("{" r'orderId' "}", orderId.toString()); @@ -44,12 +44,14 @@ class StoreApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ); } /// Returns pet inventories by status /// /// Returns a map of status codes to quantities - Future>>getInventory({ CancelToken cancelToken, Map headers,}) async { + Future>>getInventory({ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/store/inventory"; @@ -77,6 +79,8 @@ class StoreApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ).then((response) { var serializer = _serializers.serializerForType(Map); @@ -96,7 +100,7 @@ class StoreApi { /// Find purchase order by ID /// /// For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions - Future>getOrderById(int orderId,{ CancelToken cancelToken, Map headers,}) async { + Future>getOrderById(int orderId,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/store/order/{orderId}".replaceAll("{" r'orderId' "}", orderId.toString()); @@ -124,6 +128,8 @@ class StoreApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ).then((response) { var serializer = _serializers.serializerForType(Order); @@ -143,7 +149,7 @@ class StoreApi { /// Place an order for a pet /// /// - Future>placeOrder(Order body,{ CancelToken cancelToken, Map headers,}) async { + Future>placeOrder(Order body,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/store/order"; @@ -174,6 +180,8 @@ class StoreApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ).then((response) { var serializer = _serializers.serializerForType(Order); diff --git a/samples/client/petstore/dart-dio/lib/api/user_api.dart b/samples/client/petstore/dart-dio/lib/api/user_api.dart index 86175b34314..f043b6855a8 100644 --- a/samples/client/petstore/dart-dio/lib/api/user_api.dart +++ b/samples/client/petstore/dart-dio/lib/api/user_api.dart @@ -16,7 +16,7 @@ class UserApi { /// Create user /// /// This can only be done by the logged in user. - FuturecreateUser(User body,{ CancelToken cancelToken, Map headers,}) async { + FuturecreateUser(User body,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/user"; @@ -47,12 +47,14 @@ class UserApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ); } /// Creates list of users with given input array /// /// - FuturecreateUsersWithArrayInput(List body,{ CancelToken cancelToken, Map headers,}) async { + FuturecreateUsersWithArrayInput(List body,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/user/createWithArray"; @@ -84,12 +86,14 @@ class UserApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ); } /// Creates list of users with given input array /// /// - FuturecreateUsersWithListInput(List body,{ CancelToken cancelToken, Map headers,}) async { + FuturecreateUsersWithListInput(List body,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/user/createWithList"; @@ -121,12 +125,14 @@ class UserApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ); } /// Delete user /// /// This can only be done by the logged in user. - FuturedeleteUser(String username,{ CancelToken cancelToken, Map headers,}) async { + FuturedeleteUser(String username,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/user/{username}".replaceAll("{" r'username' "}", username.toString()); @@ -154,12 +160,14 @@ class UserApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ); } /// Get user by user name /// /// - Future>getUserByName(String username,{ CancelToken cancelToken, Map headers,}) async { + Future>getUserByName(String username,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/user/{username}".replaceAll("{" r'username' "}", username.toString()); @@ -187,6 +195,8 @@ class UserApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ).then((response) { var serializer = _serializers.serializerForType(User); @@ -206,7 +216,7 @@ class UserApi { /// Logs user into the system /// /// - Future>loginUser(String username,String password,{ CancelToken cancelToken, Map headers,}) async { + Future>loginUser(String username,String password,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/user/login"; @@ -236,6 +246,8 @@ class UserApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ).then((response) { var serializer = _serializers.serializerForType(String); @@ -255,7 +267,7 @@ class UserApi { /// Logs out current logged in user session /// /// - FuturelogoutUser({ CancelToken cancelToken, Map headers,}) async { + FuturelogoutUser({ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/user/logout"; @@ -283,12 +295,14 @@ class UserApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ); } /// Updated user /// /// This can only be done by the logged in user. - FutureupdateUser(String username,User body,{ CancelToken cancelToken, Map headers,}) async { + FutureupdateUser(String username,User body,{ CancelToken cancelToken, Map headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async { String _path = "/user/{username}".replaceAll("{" r'username' "}", username.toString()); @@ -319,6 +333,8 @@ class UserApi { contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json", ), cancelToken: cancelToken, + onSendProgress: onSendProgress, + onReceiveProgress: onReceiveProgress, ); } }