| 12345678910111213141516171819202122232425262728293031 |
- import 'package:cloud_firestore/cloud_firestore.dart';
- import '../models/challenge.dart';
- class ChallengeService {
- static final _db = FirebaseFirestore.instance;
- static final _dailyChallenges = _db.collection("DailyChallenges");
- static final _weeklyChallenges = _db.collection("WeeklyChallenges");
- static Future<Challenge> getDailyChallenge() async {
- final challenges = await _dailyChallenges.orderBy("date", descending: true).limit(1).get();
- final challenge = challenges.docs.first.data();
- challenge["list_exercises"] = await _getExercisesFromChallenge(challenge);
- return Challenge.fromMap(challenge);
- }
- static Future<Challenge> getWeeklyChallenge() async {
- final challenges = await _weeklyChallenges.orderBy("date", descending: true).limit(1).get();
- final challenge = challenges.docs.first.data();
- challenge["list_exercises"] = await _getExercisesFromChallenge(challenge);
- return Challenge.fromMap(challenge);
- }
- static Future<List<Map<String, dynamic>>> _getExercisesFromChallenge(Map<String, dynamic> challenge) async {
- return await Future.wait(
- List<DocumentReference<Map<String, dynamic>>>.from(challenge["list_exercises"]).map((exerciseRef) async {
- final exercise = await exerciseRef.get();
- return exercise.data()!;
- }));
- }
- }
|