forked from loafle/openapi-generator-original
44 lines
1.2 KiB
Plaintext
44 lines
1.2 KiB
Plaintext
part of {{pubName}}.api;
|
|
|
|
const _delimiters = const {'csv': ',', 'ssv': ' ', 'tsv': '\t', 'pipes': '|'};
|
|
|
|
// port from Java version
|
|
Iterable<QueryParam> _convertParametersForCollectionFormat(
|
|
String collectionFormat, String name, dynamic value) {
|
|
var params = <QueryParam>[];
|
|
|
|
// preconditions
|
|
if (name == null || name.isEmpty || value == null) return params;
|
|
|
|
if (value is! List) {
|
|
params.add(new QueryParam(name, _parameterToString(value)));
|
|
return params;
|
|
}
|
|
|
|
List values = value as List;
|
|
|
|
// get the collection format
|
|
collectionFormat = (collectionFormat == null || collectionFormat.isEmpty)
|
|
? "csv"
|
|
: collectionFormat; // default: csv
|
|
|
|
if (collectionFormat == "multi") {
|
|
return values.map((v) => new QueryParam(name, _parameterToString(v)));
|
|
}
|
|
|
|
String delimiter = _delimiters[collectionFormat] ?? ",";
|
|
|
|
params.add(new QueryParam(name, values.map((v)=>_parameterToString(v)).join(delimiter)));
|
|
return params;
|
|
}
|
|
|
|
/// Format the given parameter object into string.
|
|
String _parameterToString(dynamic value) {
|
|
if (value == null) {
|
|
return '';
|
|
} else if (value is DateTime) {
|
|
return value.toUtc().toIso8601String();
|
|
} else {
|
|
return value.toString();
|
|
}
|
|
} |