getExercises method

Future<List<Map<String, dynamic>>> getExercises(
  1. String exerciseName
)

Returns all exercises matching exerciseName.

Implementation

Future<List<Map<String, dynamic>>> getExercises(String exerciseName) async {
  final snapshot = await firestore.collection('exercises').get();
  final prefs = await SharedPreferences.getInstance();
  final locale = prefs.getString('locale');

  final results = snapshot.docs
      .where((doc) {
    String name;
    String description;
        if (locale == 'de') {
          name = doc['name'] as String;
          description = doc['description'] as String;
        } else {
          name = doc['name_en'] as String;
          description = doc['description_en'] as String;
        }
        final nameSimilarity = StringSimilarity.compareTwoStrings(
          name.toLowerCase(),
          exerciseName.toLowerCase(),
        );
        final descriptionSimilarity = StringSimilarity.compareTwoStrings(
          description.toLowerCase(),
          exerciseName.toLowerCase(),
        );
        return nameSimilarity > 0.4 || descriptionSimilarity > 0.4;
      })
      .map((doc) => doc.data())
      .toList();

  return results;
}