convertParametersForCollectionFormat method

QueryParams convertParametersForCollectionFormat(
  1. String collectionFormat,
  2. String name,
  3. dynamic value
)

Implementation

QueryParams convertParametersForCollectionFormat(
    String collectionFormat, String name, dynamic value) {
  var params = QueryParams();

  // preconditions
  if (name.isEmpty || value == null) return params;

  if (value is! List) {
    params.add(name, parameterToString(value));
    return params;
  }

  List values = value;

  // get the collection format
  collectionFormat =
      collectionFormat.isEmpty ? "csv" : collectionFormat; // default: csv

  if (collectionFormat == "multi") {
    values.forEach((v) => params[name] = parameterToString(v));
    return params;
  }

  String delimiter = _delimiters[collectionFormat] ?? ",";

  params.add(name, values.map((v) => parameterToString(v)).join(delimiter));
  return params;
}