Added provider for games

This commit is contained in:
SomnusVeritas
2023-10-21 11:14:28 +02:00
parent 781c92faf0
commit f2e0ce1694
6 changed files with 83 additions and 21 deletions

View File

@@ -1,4 +1,5 @@
import 'package:flutter/foundation.dart';
import 'package:maggs_victory_voyage/models/game.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
@@ -93,6 +94,22 @@ class DbHelper {
return items;
}
static Future<List<Game>> fetchGames() async {
List<Game> games = [];
final res = await _supabase.from('games').select().eq('active', true);
final rewardsRes =
await _supabase.from('rewards').select<List<Map<String, dynamic>>>();
for (final map in res) {
final rewards =
rewardsRes.where((element) => element['game_id'] == map['id']);
final game = Game.fromMap(map, rewards);
games.add(game);
}
return games;
}
static Future<void> pushFeedEntry(String text) async {
await _supabase
.from('feed')

View File

@@ -0,0 +1,19 @@
import 'package:flutter/material.dart';
import 'package:maggs_victory_voyage/services/db_helper.dart';
import '../models/game.dart';
class Games extends ChangeNotifier {
final List<Game> _games = [];
List<Game> get games {
if (_games.isEmpty) {
DbHelper.fetchGames().then((value) {
_games.clear();
_games.addAll(value);
notifyListeners();
});
}
return _games;
}
}