[dart-dio] Correctly handles import of Uint8List (#4313)

* [dart-dio] Correctly handles import of Uint8List

- updates dio and built_value dependencies

* [dart-dio] Updates sample
This commit is contained in:
Josh Burton
2019-10-30 20:33:26 +13:00
committed by William Cheng
parent 6795434469
commit 9c46973bcb
15 changed files with 786 additions and 777 deletions

View File

@@ -78,8 +78,9 @@ public class DartDioClientCodegen extends DartClientCodegen {
typeMapping.put("file", "Uint8List");
typeMapping.put("binary", "Uint8List");
importMapping.put("BuiltList", "built_collection/built_collection");
importMapping.put("BuiltMap", "built_collection/built_collection");
importMapping.put("BuiltList", "package:built_collection/built_collection.dart");
importMapping.put("BuiltMap", "package:built_collection/built_collection.dart");
importMapping.put("Uint8List", "dart:typed_data");
}
@Override
@@ -208,7 +209,7 @@ public class DartDioClientCodegen extends DartClientCodegen {
modelImports.add(importMapping.get(modelImport));
} else {
if (!modelToIgnore.contains(modelImport.toLowerCase(Locale.ROOT))) {
modelImports.add(pubName + "/model/" + underscore(modelImport));
modelImports.add("package:" + pubName + "/model/" + underscore(modelImport) + ".dart");
}
}
}

View File

@@ -1,7 +1,7 @@
{{#models}}
{{#model}}
{{#imports}}
import 'package:{{.}}.dart';
import '{{.}}';
{{/imports}}
{{#isEnum}}{{>enum}}{{/isEnum}}{{^isEnum}}{{>class}}{{/isEnum}}
{{/model}}

View File

@@ -4,10 +4,10 @@ description: {{pubDescription}}
environment:
sdk: ">=2.3.0 <3.0.0"
dependencies:
dio: ^3.0.3
built_value: 6.7.0
built_collection: 4.2.2
dio: ^3.0.4
built_value: ^6.8.2
built_collection: ^4.2.2
dev_dependencies:
built_value_generator: ^6.7.1
built_value_generator: ^6.8.2
build_runner: ^1.7.1
test: 1.6.5

View File

@@ -4,6 +4,7 @@ This is a sample server Petstore server. For this sample, you can use the api ke
This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 1.0.0
- Build date: 2019-10-30T08:32:55.947+13:00[Pacific/Auckland]
- Build package: org.openapitools.codegen.languages.DartDioClientCodegen
## Requirements

View File

@@ -8,52 +8,45 @@ import 'package:openapi/api/pet_api.dart';
import 'package:openapi/api/store_api.dart';
import 'package:openapi/api/user_api.dart';
class Openapi {
Dio dio;
Serializers serializers;
String basePath = "http://petstore.swagger.io/v2";
Dio dio;
Serializers serializers;
String basePath = "http://petstore.swagger.io/v2";
Openapi({this.dio, Serializers serializers}) {
Openapi({this.dio, Serializers serializers}) {
if (dio == null) {
BaseOptions options = new BaseOptions(
baseUrl: basePath,
connectTimeout: 5000,
receiveTimeout: 3000,
);
this.dio = new Dio(options);
BaseOptions options = new BaseOptions(
baseUrl: basePath,
connectTimeout: 5000,
receiveTimeout: 3000,
);
this.dio = new Dio(options);
}
this.serializers = serializers ?? standardSerializers;
}
}
/**
/**
* Get PetApi instance, base route and serializer can be overridden by a given but be careful,
* by doing that all interceptors will not be executed
*/
PetApi getPetApi() {
PetApi getPetApi() {
return PetApi(dio, serializers);
}
}
/**
/**
* Get StoreApi instance, base route and serializer can be overridden by a given but be careful,
* by doing that all interceptors will not be executed
*/
StoreApi getStoreApi() {
StoreApi getStoreApi() {
return StoreApi(dio, serializers);
}
}
/**
/**
* Get UserApi instance, base route and serializer can be overridden by a given but be careful,
* by doing that all interceptors will not be executed
*/
UserApi getUserApi() {
UserApi getUserApi() {
return UserApi(dio, serializers);
}
}
}
}

View File

@@ -10,322 +10,367 @@ import 'package:openapi/model/api_response.dart';
import 'dart:typed_data';
class PetApi {
final Dio _dio;
Serializers _serializers;
final Dio _dio;
Serializers _serializers;
PetApi(this._dio, this._serializers);
PetApi(this._dio, this._serializers);
/// Add a new pet to the store
///
///
Future<Response>addPet(Pet body,{ CancelToken cancelToken, Map<String, String> headers,}) async {
/// Add a new pet to the store
///
///
Future<Response> addPet(
Pet body, {
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path = "/pet";
String path = "/pet";
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
List<String> contentTypes = ["application/json", "application/xml"];
List<String> contentTypes = [
"application/json",
"application/xml"];
var serializedBody = _serializers.serialize(body);
var jsonbody = json.encode(serializedBody);
var serializedBody = _serializers.serialize(body);
var jsonbody = json.encode(serializedBody);
return _dio.request(
path,
queryParameters: queryParams,
data: jsonbody,
options: Options(
method: 'post'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
return _dio.request(
path,
queryParameters: queryParams,
data: jsonbody,
options: Options(
method: 'post'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
/// Deletes a pet
///
///
Future<Response>deletePet(int petId,{ String apiKey,CancelToken cancelToken, Map<String, String> headers,}) async {
/// Deletes a pet
///
///
Future<Response> deletePet(
int petId, {
String apiKey,
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path =
"/pet/{petId}".replaceAll("{" + "petId" + "}", petId.toString());
String path = "/pet/{petId}".replaceAll("{" + "petId" + "}", petId.toString());
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
headerParams["api_key"] = apiKey;
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
headerParams["api_key"] = apiKey;
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
List<String> contentTypes = [];
List<String> contentTypes = [];
return _dio.request(
path,
queryParameters: queryParams,
options: Options(
method: 'delete'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
/// Finds Pets by status
///
/// Multiple status values can be provided with comma separated strings
Future<Response<List<Pet>>> findPetsByStatus(
List<String> status, {
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path = "/pet/findByStatus";
return _dio.request(
path,
queryParameters: queryParams,
options: Options(
method: 'delete'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
/// Finds Pets by status
///
/// Multiple status values can be provided with comma separated strings
Future<Response<List<Pet>>>findPetsByStatus(List<String> status,{ CancelToken cancelToken, Map<String, String> headers,}) async {
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
String path = "/pet/findByStatus";
queryParams["status"] = status;
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
List<String> contentTypes = [];
queryParams["status"] = status;
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
return _dio
.request(
path,
queryParameters: queryParams,
options: Options(
method: 'get'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
)
.then((response) {
final FullType type =
const FullType(BuiltList, const [const FullType(Pet)]);
BuiltList<Pet> dataList =
_serializers.deserialize(response.data, specifiedType: type);
var data = dataList.toList();
List<String> contentTypes = [];
return Response<List<Pet>>(
data: data,
headers: response.headers,
request: response.request,
redirects: response.redirects,
statusCode: response.statusCode,
statusMessage: response.statusMessage,
extra: response.extra,
);
});
}
/// Finds Pets by tags
///
/// Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
Future<Response<List<Pet>>> findPetsByTags(
List<String> tags, {
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path = "/pet/findByTags";
return _dio.request(
path,
queryParameters: queryParams,
options: Options(
method: 'get'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
).then((response) {
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
final FullType type = const FullType(BuiltList, const [const FullType(Pet)]);
BuiltList<Pet> dataList = _serializers.deserialize(response.data, specifiedType: type);
var data = dataList.toList();
queryParams["tags"] = tags;
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
return Response<List<Pet>>(
data: data,
headers: response.headers,
request: response.request,
redirects: response.redirects,
statusCode: response.statusCode,
statusMessage: response.statusMessage,
extra: response.extra,
);
});
}
/// Finds Pets by tags
///
/// Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
Future<Response<List<Pet>>>findPetsByTags(List<String> tags,{ CancelToken cancelToken, Map<String, String> headers,}) async {
List<String> contentTypes = [];
String path = "/pet/findByTags";
return _dio
.request(
path,
queryParameters: queryParams,
options: Options(
method: 'get'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
)
.then((response) {
final FullType type =
const FullType(BuiltList, const [const FullType(Pet)]);
BuiltList<Pet> dataList =
_serializers.deserialize(response.data, specifiedType: type);
var data = dataList.toList();
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
return Response<List<Pet>>(
data: data,
headers: response.headers,
request: response.request,
redirects: response.redirects,
statusCode: response.statusCode,
statusMessage: response.statusMessage,
extra: response.extra,
);
});
}
queryParams["tags"] = tags;
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
/// Find pet by ID
///
/// Returns a single pet
Future<Response<Pet>> getPetById(
int petId, {
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path =
"/pet/{petId}".replaceAll("{" + "petId" + "}", petId.toString());
List<String> contentTypes = [];
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
return _dio.request(
path,
queryParameters: queryParams,
options: Options(
method: 'get'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
).then((response) {
List<String> contentTypes = [];
final FullType type = const FullType(BuiltList, const [const FullType(Pet)]);
BuiltList<Pet> dataList = _serializers.deserialize(response.data, specifiedType: type);
var data = dataList.toList();
return _dio
.request(
path,
queryParameters: queryParams,
options: Options(
method: 'get'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
)
.then((response) {
var serializer = _serializers.serializerForType(Pet);
var data = _serializers.deserializeWith<Pet>(serializer, response.data);
return Response<List<Pet>>(
data: data,
headers: response.headers,
request: response.request,
redirects: response.redirects,
statusCode: response.statusCode,
statusMessage: response.statusMessage,
extra: response.extra,
);
});
}
/// Find pet by ID
///
/// Returns a single pet
Future<Response<Pet>>getPetById(int petId,{ CancelToken cancelToken, Map<String, String> headers,}) async {
return Response<Pet>(
data: data,
headers: response.headers,
request: response.request,
redirects: response.redirects,
statusCode: response.statusCode,
statusMessage: response.statusMessage,
extra: response.extra,
);
});
}
String path = "/pet/{petId}".replaceAll("{" + "petId" + "}", petId.toString());
/// Update an existing pet
///
///
Future<Response> updatePet(
Pet body, {
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path = "/pet";
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
List<String> contentTypes = [];
List<String> contentTypes = ["application/json", "application/xml"];
var serializedBody = _serializers.serialize(body);
var jsonbody = json.encode(serializedBody);
return _dio.request(
path,
queryParameters: queryParams,
options: Options(
method: 'get'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
).then((response) {
return _dio.request(
path,
queryParameters: queryParams,
data: jsonbody,
options: Options(
method: 'put'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
var serializer = _serializers.serializerForType(Pet);
var data = _serializers.deserializeWith<Pet>(serializer, response.data);
/// Updates a pet in the store with form data
///
///
Future<Response> updatePetWithForm(
int petId, {
String name,
String status,
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path =
"/pet/{petId}".replaceAll("{" + "petId" + "}", petId.toString());
return Response<Pet>(
data: data,
headers: response.headers,
request: response.request,
redirects: response.redirects,
statusCode: response.statusCode,
statusMessage: response.statusMessage,
extra: response.extra,
);
});
}
/// Update an existing pet
///
///
Future<Response>updatePet(Pet body,{ CancelToken cancelToken, Map<String, String> headers,}) async {
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
String path = "/pet";
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
List<String> contentTypes = ["application/x-www-form-urlencoded"];
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
return _dio.request(
path,
queryParameters: queryParams,
options: Options(
method: 'post'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
List<String> contentTypes = [
"application/json",
"application/xml"];
/// uploads an image
///
///
Future<Response<ApiResponse>> uploadFile(
int petId, {
String additionalMetadata,
Uint8List file,
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path = "/pet/{petId}/uploadImage"
.replaceAll("{" + "petId" + "}", petId.toString());
var serializedBody = _serializers.serialize(body);
var jsonbody = json.encode(serializedBody);
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
return _dio.request(
path,
queryParameters: queryParams,
data: jsonbody,
options: Options(
method: 'put'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
/// Updates a pet in the store with form data
///
///
Future<Response>updatePetWithForm(int petId,{ String name,String status,CancelToken cancelToken, Map<String, String> headers,}) async {
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
String path = "/pet/{petId}".replaceAll("{" + "petId" + "}", petId.toString());
List<String> contentTypes = ["multipart/form-data"];
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
return _dio
.request(
path,
queryParameters: queryParams,
options: Options(
method: 'post'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
)
.then((response) {
var serializer = _serializers.serializerForType(ApiResponse);
var data =
_serializers.deserializeWith<ApiResponse>(serializer, response.data);
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
List<String> contentTypes = [
"application/x-www-form-urlencoded"];
return _dio.request(
path,
queryParameters: queryParams,
options: Options(
method: 'post'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
/// uploads an image
///
///
Future<Response<ApiResponse>>uploadFile(int petId,{ String additionalMetadata,Uint8List file,CancelToken cancelToken, Map<String, String> headers,}) async {
String path = "/pet/{petId}/uploadImage".replaceAll("{" + "petId" + "}", petId.toString());
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
List<String> contentTypes = [
"multipart/form-data"];
return _dio.request(
path,
queryParameters: queryParams,
options: Options(
method: 'post'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
).then((response) {
var serializer = _serializers.serializerForType(ApiResponse);
var data = _serializers.deserializeWith<ApiResponse>(serializer, response.data);
return Response<ApiResponse>(
data: data,
headers: response.headers,
request: response.request,
redirects: response.redirects,
statusCode: response.statusCode,
statusMessage: response.statusMessage,
extra: response.extra,
);
});
}
}
return Response<ApiResponse>(
data: data,
headers: response.headers,
request: response.request,
redirects: response.redirects,
statusCode: response.statusCode,
statusMessage: response.statusMessage,
extra: response.extra,
);
});
}
}

View File

@@ -8,293 +8,337 @@ import 'package:built_value/serializer.dart';
import 'package:openapi/model/user.dart';
class UserApi {
final Dio _dio;
Serializers _serializers;
final Dio _dio;
Serializers _serializers;
UserApi(this._dio, this._serializers);
UserApi(this._dio, this._serializers);
/// Create user
///
/// This can only be done by the logged in user.
Future<Response>createUser(User body,{ CancelToken cancelToken, Map<String, String> headers,}) async {
/// Create user
///
/// This can only be done by the logged in user.
Future<Response> createUser(
User body, {
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path = "/user";
String path = "/user";
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
List<String> contentTypes = [];
List<String> contentTypes = [];
var serializedBody = _serializers.serialize(body);
var jsonbody = json.encode(serializedBody);
var serializedBody = _serializers.serialize(body);
var jsonbody = json.encode(serializedBody);
return _dio.request(
path,
queryParameters: queryParams,
data: jsonbody,
options: Options(
method: 'post'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
return _dio.request(
path,
queryParameters: queryParams,
data: jsonbody,
options: Options(
method: 'post'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
/// Creates list of users with given input array
///
///
Future<Response>createUsersWithArrayInput(List<User> body,{ CancelToken cancelToken, Map<String, String> headers,}) async {
/// Creates list of users with given input array
///
///
Future<Response> createUsersWithArrayInput(
List<User> body, {
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path = "/user/createWithArray";
String path = "/user/createWithArray";
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
List<String> contentTypes = [];
List<String> contentTypes = [];
final type = const FullType(BuiltList, const [const FullType(User)]);
var serializedBody =
_serializers.serialize(BuiltList<User>.from(body), specifiedType: type);
var jsonbody = json.encode(serializedBody);
final type = const FullType(BuiltList, const [const FullType(User)]);
var serializedBody = _serializers.serialize(BuiltList<User>.from(body), specifiedType: type);
var jsonbody = json.encode(serializedBody);
return _dio.request(
path,
queryParameters: queryParams,
data: jsonbody,
options: Options(
method: 'post'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
return _dio.request(
path,
queryParameters: queryParams,
data: jsonbody,
options: Options(
method: 'post'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
/// Creates list of users with given input array
///
///
Future<Response>createUsersWithListInput(List<User> body,{ CancelToken cancelToken, Map<String, String> headers,}) async {
/// Creates list of users with given input array
///
///
Future<Response> createUsersWithListInput(
List<User> body, {
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path = "/user/createWithList";
String path = "/user/createWithList";
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
List<String> contentTypes = [];
List<String> contentTypes = [];
final type = const FullType(BuiltList, const [const FullType(User)]);
var serializedBody =
_serializers.serialize(BuiltList<User>.from(body), specifiedType: type);
var jsonbody = json.encode(serializedBody);
final type = const FullType(BuiltList, const [const FullType(User)]);
var serializedBody = _serializers.serialize(BuiltList<User>.from(body), specifiedType: type);
var jsonbody = json.encode(serializedBody);
return _dio.request(
path,
queryParameters: queryParams,
data: jsonbody,
options: Options(
method: 'post'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
return _dio.request(
path,
queryParameters: queryParams,
data: jsonbody,
options: Options(
method: 'post'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
/// Delete user
///
/// This can only be done by the logged in user.
Future<Response>deleteUser(String username,{ CancelToken cancelToken, Map<String, String> headers,}) async {
/// Delete user
///
/// This can only be done by the logged in user.
Future<Response> deleteUser(
String username, {
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path = "/user/{username}"
.replaceAll("{" + "username" + "}", username.toString());
String path = "/user/{username}".replaceAll("{" + "username" + "}", username.toString());
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
List<String> contentTypes = [];
List<String> contentTypes = [];
return _dio.request(
path,
queryParameters: queryParams,
options: Options(
method: 'delete'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
/// Get user by user name
///
///
Future<Response<User>> getUserByName(
String username, {
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path = "/user/{username}"
.replaceAll("{" + "username" + "}", username.toString());
return _dio.request(
path,
queryParameters: queryParams,
options: Options(
method: 'delete'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
/// Get user by user name
///
///
Future<Response<User>>getUserByName(String username,{ CancelToken cancelToken, Map<String, String> headers,}) async {
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
String path = "/user/{username}".replaceAll("{" + "username" + "}", username.toString());
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
List<String> contentTypes = [];
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
return _dio
.request(
path,
queryParameters: queryParams,
options: Options(
method: 'get'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
)
.then((response) {
var serializer = _serializers.serializerForType(User);
var data = _serializers.deserializeWith<User>(serializer, response.data);
List<String> contentTypes = [];
return Response<User>(
data: data,
headers: response.headers,
request: response.request,
redirects: response.redirects,
statusCode: response.statusCode,
statusMessage: response.statusMessage,
extra: response.extra,
);
});
}
/// Logs user into the system
///
///
Future<Response<String>> loginUser(
String username,
String password, {
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path = "/user/login";
return _dio.request(
path,
queryParameters: queryParams,
options: Options(
method: 'get'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
).then((response) {
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
var serializer = _serializers.serializerForType(User);
var data = _serializers.deserializeWith<User>(serializer, response.data);
queryParams["username"] = username;
queryParams["password"] = password;
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
return Response<User>(
data: data,
headers: response.headers,
request: response.request,
redirects: response.redirects,
statusCode: response.statusCode,
statusMessage: response.statusMessage,
extra: response.extra,
);
});
}
/// Logs user into the system
///
///
Future<Response<String>>loginUser(String username,String password,{ CancelToken cancelToken, Map<String, String> headers,}) async {
List<String> contentTypes = [];
String path = "/user/login";
return _dio
.request(
path,
queryParameters: queryParams,
options: Options(
method: 'get'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
)
.then((response) {
var serializer = _serializers.serializerForType(String);
var data =
_serializers.deserializeWith<String>(serializer, response.data);
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
return Response<String>(
data: data,
headers: response.headers,
request: response.request,
redirects: response.redirects,
statusCode: response.statusCode,
statusMessage: response.statusMessage,
extra: response.extra,
);
});
}
queryParams["username"] = username;
queryParams["password"] = password;
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
/// Logs out current logged in user session
///
///
Future<Response> logoutUser({
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path = "/user/logout";
List<String> contentTypes = [];
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
return _dio.request(
path,
queryParameters: queryParams,
options: Options(
method: 'get'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
).then((response) {
List<String> contentTypes = [];
var serializer = _serializers.serializerForType(String);
var data = _serializers.deserializeWith<String>(serializer, response.data);
return _dio.request(
path,
queryParameters: queryParams,
options: Options(
method: 'get'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
return Response<String>(
data: data,
headers: response.headers,
request: response.request,
redirects: response.redirects,
statusCode: response.statusCode,
statusMessage: response.statusMessage,
extra: response.extra,
);
});
}
/// Logs out current logged in user session
///
///
Future<Response>logoutUser({ CancelToken cancelToken, Map<String, String> headers,}) async {
/// Updated user
///
/// This can only be done by the logged in user.
Future<Response> updateUser(
String username,
User body, {
CancelToken cancelToken,
Map<String, String> headers,
}) async {
String path = "/user/{username}"
.replaceAll("{" + "username" + "}", username.toString());
String path = "/user/logout";
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
List<String> contentTypes = [];
List<String> contentTypes = [];
var serializedBody = _serializers.serialize(body);
var jsonbody = json.encode(serializedBody);
return _dio.request(
path,
queryParameters: queryParams,
options: Options(
method: 'get'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
/// Updated user
///
/// This can only be done by the logged in user.
Future<Response>updateUser(String username,User body,{ CancelToken cancelToken, Map<String, String> headers,}) async {
String path = "/user/{username}".replaceAll("{" + "username" + "}", username.toString());
// query params
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
Map<String, String> formParams = {};
queryParams.removeWhere((key, value) => value == null);
headerParams.removeWhere((key, value) => value == null);
formParams.removeWhere((key, value) => value == null);
List<String> contentTypes = [];
var serializedBody = _serializers.serialize(body);
var jsonbody = json.encode(serializedBody);
return _dio.request(
path,
queryParameters: queryParams,
data: jsonbody,
options: Options(
method: 'put'.toUpperCase(),
headers: headerParams,
contentType: contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
}
return _dio.request(
path,
queryParameters: queryParams,
data: jsonbody,
options: Options(
method: 'put'.toUpperCase(),
headers: headerParams,
contentType:
contentTypes.isNotEmpty ? contentTypes[0] : "application/json",
),
cancelToken: cancelToken,
);
}
}

View File

@@ -1,34 +1,24 @@
import 'package:built_value/built_value.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'api_response.g.dart';
abstract class ApiResponse implements Built<ApiResponse, ApiResponseBuilder> {
@nullable
@BuiltValueField(wireName: 'code')
int get code;
@nullable
@nullable
@BuiltValueField(wireName: 'type')
String get type;
@BuiltValueField(wireName: 'code')
int get code;
@nullable
@nullable
@BuiltValueField(wireName: 'message')
String get message;
@BuiltValueField(wireName: 'type')
String get type;
@nullable
@BuiltValueField(wireName: 'message')
String get message;
// Boilerplate code needed to wire-up generated code
ApiResponse._();
factory ApiResponse([updates(ApiResponseBuilder b)]) = _$ApiResponse;
static Serializer<ApiResponse> get serializer => _$apiResponseSerializer;
// Boilerplate code needed to wire-up generated code
ApiResponse._();
factory ApiResponse([updates(ApiResponseBuilder b)]) = _$ApiResponse;
static Serializer<ApiResponse> get serializer => _$apiResponseSerializer;
}

View File

@@ -1,28 +1,20 @@
import 'package:built_value/built_value.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'category.g.dart';
abstract class Category implements Built<Category, CategoryBuilder> {
@nullable
@BuiltValueField(wireName: 'id')
int get id;
@nullable
@nullable
@BuiltValueField(wireName: 'name')
String get name;
@BuiltValueField(wireName: 'id')
int get id;
@nullable
@BuiltValueField(wireName: 'name')
String get name;
// Boilerplate code needed to wire-up generated code
Category._();
factory Category([updates(CategoryBuilder b)]) = _$Category;
static Serializer<Category> get serializer => _$categorySerializer;
// Boilerplate code needed to wire-up generated code
Category._();
factory Category([updates(CategoryBuilder b)]) = _$Category;
static Serializer<Category> get serializer => _$categorySerializer;
}

View File

@@ -1,53 +1,39 @@
import 'package:built_value/built_value.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'order.g.dart';
abstract class Order implements Built<Order, OrderBuilder> {
@nullable
@BuiltValueField(wireName: 'id')
int get id;
@nullable
@nullable
@BuiltValueField(wireName: 'petId')
int get petId;
@BuiltValueField(wireName: 'id')
int get id;
@nullable
@nullable
@BuiltValueField(wireName: 'quantity')
int get quantity;
@BuiltValueField(wireName: 'petId')
int get petId;
@nullable
@nullable
@BuiltValueField(wireName: 'shipDate')
DateTime get shipDate;
/* Order Status */
@nullable
@BuiltValueField(wireName: 'quantity')
int get quantity;
@nullable
/* Order Status */
@BuiltValueField(wireName: 'status')
String get status;
//enum statusEnum { placed, approved, delivered, };
@BuiltValueField(wireName: 'shipDate')
DateTime get shipDate;
/* Order Status */
@nullable
@nullable
@BuiltValueField(wireName: 'complete')
bool get complete;
/* Order Status */
@BuiltValueField(wireName: 'status')
String get status;
//enum statusEnum { placed, approved, delivered, };
@nullable
@BuiltValueField(wireName: 'complete')
bool get complete;
// Boilerplate code needed to wire-up generated code
Order._();
factory Order([updates(OrderBuilder b)]) = _$Order;
static Serializer<Order> get serializer => _$orderSerializer;
// Boilerplate code needed to wire-up generated code
Order._();
factory Order([updates(OrderBuilder b)]) = _$Order;
static Serializer<Order> get serializer => _$orderSerializer;
}

View File

@@ -1,56 +1,42 @@
import 'package:openapi/model/tag.dart';
import 'package:openapi/model/category.dart';
import 'package:built_collection/built_collection.dart';
import 'package:built_value/built_value.dart';
import 'package:openapi/model/tag.dart';
import 'package:built_collection/built_collection.dart';
import 'package:openapi/model/category.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'pet.g.dart';
abstract class Pet implements Built<Pet, PetBuilder> {
@nullable
@BuiltValueField(wireName: 'id')
int get id;
@nullable
@nullable
@BuiltValueField(wireName: 'category')
Category get category;
@BuiltValueField(wireName: 'id')
int get id;
@nullable
@nullable
@BuiltValueField(wireName: 'name')
String get name;
@BuiltValueField(wireName: 'category')
Category get category;
@nullable
@nullable
@BuiltValueField(wireName: 'photoUrls')
BuiltList<String> get photoUrls;
@BuiltValueField(wireName: 'name')
String get name;
@nullable
@nullable
@BuiltValueField(wireName: 'tags')
BuiltList<Tag> get tags;
/* pet status in the store */
@nullable
@BuiltValueField(wireName: 'photoUrls')
BuiltList<String> get photoUrls;
@nullable
/* pet status in the store */
@BuiltValueField(wireName: 'status')
String get status;
//enum statusEnum { available, pending, sold, };
@BuiltValueField(wireName: 'tags')
BuiltList<Tag> get tags;
/* pet status in the store */
@nullable
/* pet status in the store */
@BuiltValueField(wireName: 'status')
String get status;
//enum statusEnum { available, pending, sold, };
// Boilerplate code needed to wire-up generated code
Pet._();
factory Pet([updates(PetBuilder b)]) = _$Pet;
static Serializer<Pet> get serializer => _$petSerializer;
// Boilerplate code needed to wire-up generated code
Pet._();
factory Pet([updates(PetBuilder b)]) = _$Pet;
static Serializer<Pet> get serializer => _$petSerializer;
}

View File

@@ -1,28 +1,20 @@
import 'package:built_value/built_value.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'tag.g.dart';
abstract class Tag implements Built<Tag, TagBuilder> {
@nullable
@BuiltValueField(wireName: 'id')
int get id;
@nullable
@nullable
@BuiltValueField(wireName: 'name')
String get name;
@BuiltValueField(wireName: 'id')
int get id;
@nullable
@BuiltValueField(wireName: 'name')
String get name;
// Boilerplate code needed to wire-up generated code
Tag._();
factory Tag([updates(TagBuilder b)]) = _$Tag;
static Serializer<Tag> get serializer => _$tagSerializer;
// Boilerplate code needed to wire-up generated code
Tag._();
factory Tag([updates(TagBuilder b)]) = _$Tag;
static Serializer<Tag> get serializer => _$tagSerializer;
}

View File

@@ -1,64 +1,46 @@
import 'package:built_value/built_value.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'user.g.dart';
abstract class User implements Built<User, UserBuilder> {
@nullable
@BuiltValueField(wireName: 'id')
int get id;
@nullable
@nullable
@BuiltValueField(wireName: 'username')
String get username;
@BuiltValueField(wireName: 'id')
int get id;
@nullable
@nullable
@BuiltValueField(wireName: 'firstName')
String get firstName;
@BuiltValueField(wireName: 'username')
String get username;
@nullable
@nullable
@BuiltValueField(wireName: 'lastName')
String get lastName;
@BuiltValueField(wireName: 'firstName')
String get firstName;
@nullable
@nullable
@BuiltValueField(wireName: 'email')
String get email;
@BuiltValueField(wireName: 'lastName')
String get lastName;
@nullable
@nullable
@BuiltValueField(wireName: 'password')
String get password;
@BuiltValueField(wireName: 'email')
String get email;
@nullable
@nullable
@BuiltValueField(wireName: 'phone')
String get phone;
/* User Status */
@nullable
@BuiltValueField(wireName: 'password')
String get password;
@nullable
/* User Status */
@BuiltValueField(wireName: 'userStatus')
int get userStatus;
@BuiltValueField(wireName: 'phone')
String get phone;
/* User Status */
@nullable
/* User Status */
@BuiltValueField(wireName: 'userStatus')
int get userStatus;
// Boilerplate code needed to wire-up generated code
User._();
factory User([updates(UserBuilder b)]) = _$User;
static Serializer<User> get serializer => _$userSerializer;
// Boilerplate code needed to wire-up generated code
User._();
factory User([updates(UserBuilder b)]) = _$User;
static Serializer<User> get serializer => _$userSerializer;
}

View File

@@ -11,41 +11,38 @@ import 'package:openapi/model/pet.dart';
import 'package:openapi/model/tag.dart';
import 'package:openapi/model/user.dart';
part 'serializers.g.dart';
@SerializersFor(const [
ApiResponse,
Category,
Order,
Pet,
Tag,
User,
ApiResponse,
Category,
Order,
Pet,
Tag,
User,
])
//allow all models to be serialized within a list
Serializers serializers = (_$serializers.toBuilder()
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(ApiResponse)]),
() => new ListBuilder<ApiResponse>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(Category)]),
() => new ListBuilder<Category>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(Order)]),
() => new ListBuilder<Order>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(Pet)]),
() => new ListBuilder<Pet>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(Tag)]),
() => new ListBuilder<Tag>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(User)]),
() => new ListBuilder<User>())
).build();
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(ApiResponse)]),
() => new ListBuilder<ApiResponse>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(Category)]),
() => new ListBuilder<Category>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(Order)]),
() => new ListBuilder<Order>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(Pet)]),
() => new ListBuilder<Pet>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(Tag)]),
() => new ListBuilder<Tag>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(User)]),
() => new ListBuilder<User>()))
.build();
Serializers standardSerializers =
(serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();
(serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();

View File

@@ -5,9 +5,9 @@ environment:
sdk: ">=2.3.0 <3.0.0"
dependencies:
dio: ^3.0.3
built_value: 6.7.0
built_collection: 4.2.2
built_value: ^6.8.2
built_collection: ^4.2.2
dev_dependencies:
built_value_generator: ^6.7.1
built_value_generator: ^6.8.2
build_runner: ^1.7.1
test: 1.6.5