Added provider for games
This commit is contained in:
@@ -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')
|
||||
|
||||
19
lib/services/games_provider.dart
Normal file
19
lib/services/games_provider.dart
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user