matchOneOrMany method

List<Map<String, dynamic>> matchOneOrMany(
  1. List<Map<String, dynamic>> models,
  2. List<Map<String, dynamic>> results,
  3. String relation,
  4. String parentKey,
  5. String relatedKey,
)

Implementation

List<Map<String, dynamic>> matchOneOrMany(
  List<Map<String, dynamic>> models,
  List<Map<String, dynamic>> results,
  String relation,
  String parentKey,
  String relatedKey,
) {
  Map<String, Map<String, dynamic>> dictionary = {};

  for (var result in results) {
    String key = result[relatedKey].toString();
    dictionary[key] = result;
  }

  models = models.map((model) {
    String key = model[parentKey].toString();
    Map<String, dynamic> cloneModel = Map.from(model);
    if (dictionary.containsKey(key)) {
      cloneModel[relation] = dictionary[key];
    } else {
      cloneModel[relation] = null;
    }
    return cloneModel;
  }).toList();

  return models;
}