fixed homework provider finally

This commit is contained in:
Kima 2023-10-15 14:29:25 +02:00
parent efe58eeea9
commit 27fefb4c27

View File

@ -1,6 +1,6 @@
import 'package:filcnaplo/api/providers/user_provider.dart'; import 'package:filcnaplo/api/providers/user_provider.dart';
import 'package:filcnaplo/api/providers/database_provider.dart'; import 'package:filcnaplo/api/providers/database_provider.dart';
import 'package:filcnaplo/models/settings.dart'; // import 'package:filcnaplo/models/settings.dart';
import 'package:filcnaplo/models/user.dart'; import 'package:filcnaplo/models/user.dart';
import 'package:filcnaplo_kreta_api/client/api.dart'; import 'package:filcnaplo_kreta_api/client/api.dart';
import 'package:filcnaplo_kreta_api/client/client.dart'; import 'package:filcnaplo_kreta_api/client/client.dart';
@ -11,7 +11,7 @@ import 'package:provider/provider.dart';
class HomeworkProvider with ChangeNotifier { class HomeworkProvider with ChangeNotifier {
// Private // Private
late final SettingsProvider _settings; // late final SettingsProvider _settings;
late final UserProvider _user; late final UserProvider _user;
late final DatabaseProvider _database; late final DatabaseProvider _database;
@ -80,9 +80,11 @@ class HomeworkProvider with ChangeNotifier {
List? homeworkJson = []; List? homeworkJson = [];
try { try {
homeworkJson = await Provider.of<KretaClient>(_context, listen: false) Iterable hwjson = await Provider.of<KretaClient>(_context, listen: false)
.getAPI(KretaAPI.homework(iss, start: from)); .getAPI(KretaAPI.homework(iss, start: from));
homeworkJson = List.from(hwjson.map((model) => model));
} catch (e) { } catch (e) {
if (kDebugMode) print(e);
// error fetcing homework (unknown error) // error fetcing homework (unknown error)
} }
@ -95,15 +97,15 @@ class HomeworkProvider with ChangeNotifier {
await Future.forEach(homeworkJson.cast<Map>(), (Map hw) async { await Future.forEach(homeworkJson.cast<Map>(), (Map hw) async {
Map? e = await Provider.of<KretaClient>(_context, listen: false) Map? e = await Provider.of<KretaClient>(_context, listen: false)
.getAPI(KretaAPI.homework(iss, id: hw["Uid"])); .getAPI(KretaAPI.homework(iss, id: hw["Uid"]));
Map<String, String> renamedSubjects = _settings.renamedSubjectsEnabled // Map<String, String> renamedSubjects = _settings.renamedSubjectsEnabled
? await _database.userQuery.renamedSubjects(userId: _user.user!.id) // ? await _database.userQuery.renamedSubjects(userId: _user.user!.id)
: {}; // : {};
if (e != null) { if (e != null) {
Homework hw = Homework.fromJson(e); Homework hmwrk = Homework.fromJson(e);
hw.subject.renamedTo = // hw.subject.renamedTo =
renamedSubjects.isNotEmpty ? renamedSubjects[hw.subject.id] : null; // renamedSubjects.isNotEmpty ? renamedSubjects[hw.subject.id] : null;
homework.add(hw); homework.add(hmwrk);
} }
}); });
@ -112,6 +114,7 @@ class HomeworkProvider with ChangeNotifier {
if (db) await store(homework); if (db) await store(homework);
_homework = homework; _homework = homework;
notifyListeners(); notifyListeners();
await convertBySettings();
} }
// Stores Homework in the database // Stores Homework in the database