diff --git a/filcnaplo_kreta_api/lib/providers/subject_provider.dart b/filcnaplo_kreta_api/lib/providers/subject_provider.dart index 7a9ac4b..8401e3a 100644 --- a/filcnaplo_kreta_api/lib/providers/subject_provider.dart +++ b/filcnaplo_kreta_api/lib/providers/subject_provider.dart @@ -1,165 +1,165 @@ -import 'package:filcnaplo/api/providers/user_provider.dart'; -import 'package:filcnaplo/api/providers/database_provider.dart'; -import 'package:filcnaplo/models/settings.dart'; -import 'package:filcnaplo/models/user.dart'; -import 'package:filcnaplo_kreta_api/client/api.dart'; -import 'package:filcnaplo_kreta_api/client/client.dart'; -import 'package:filcnaplo_kreta_api/models/grade.dart'; -import 'package:filcnaplo_kreta_api/models/group_average.dart'; -import 'package:filcnaplo_kreta_api/providers/grade_provider.i18n.dart'; -import 'package:flutter/material.dart'; +// import 'package:filcnaplo/api/providers/user_provider.dart'; +// import 'package:filcnaplo/api/providers/database_provider.dart'; +// import 'package:filcnaplo/models/settings.dart'; +// import 'package:filcnaplo/models/user.dart'; +// import 'package:filcnaplo_kreta_api/client/api.dart'; +// import 'package:filcnaplo_kreta_api/client/client.dart'; +// import 'package:filcnaplo_kreta_api/models/grade.dart'; +// import 'package:filcnaplo_kreta_api/models/group_average.dart'; +// import 'package:filcnaplo_kreta_api/providers/grade_provider.i18n.dart'; +// import 'package:flutter/material.dart'; -class SubjectProvider with ChangeNotifier { - // Private - late List _grades; - late DateTime _lastSeen; - late String _groups; - List _groupAvg = []; - late final SettingsProvider _settings; - late final UserProvider _user; - late final DatabaseProvider _database; - late final KretaClient _kreta; +// class SubjectProvider with ChangeNotifier { +// // Private +// late List _grades; +// late DateTime _lastSeen; +// late String _groups; +// List _groupAvg = []; +// late final SettingsProvider _settings; +// late final UserProvider _user; +// late final DatabaseProvider _database; +// late final KretaClient _kreta; - // Public - List get grades => _grades; - DateTime get lastSeenDate => - _settings.gradeOpeningFun ? _lastSeen : DateTime(3000); - String get groups => _groups; - List get groupAverages => _groupAvg; +// // Public +// List get grades => _grades; +// DateTime get lastSeenDate => +// _settings.gradeOpeningFun ? _lastSeen : DateTime(3000); +// String get groups => _groups; +// List get groupAverages => _groupAvg; - SubjectProvider({ - List initialGrades = const [], - required SettingsProvider settings, - required UserProvider user, - required DatabaseProvider database, - required KretaClient kreta, - }) { - _settings = settings; - _user = user; - _database = database; - _kreta = kreta; +// SubjectProvider({ +// List initialGrades = const [], +// required SettingsProvider settings, +// required UserProvider user, +// required DatabaseProvider database, +// required KretaClient kreta, +// }) { +// _settings = settings; +// _user = user; +// _database = database; +// _kreta = kreta; - _grades = List.castFrom(initialGrades); - _lastSeen = DateTime.now(); +// _grades = List.castFrom(initialGrades); +// _lastSeen = DateTime.now(); - if (_grades.isEmpty) restore(); - } +// if (_grades.isEmpty) restore(); +// } - Future seenAll() async { - String? userId = _user.id; - if (userId != null) { - final userStore = _database.userStore; - userStore.storeLastSeenGrade(DateTime.now(), userId: userId); - _lastSeen = DateTime.now(); - } - } +// Future seenAll() async { +// String? userId = _user.id; +// if (userId != null) { +// final userStore = _database.userStore; +// userStore.storeLastSeenGrade(DateTime.now(), userId: userId); +// _lastSeen = DateTime.now(); +// } +// } - Future restore() async { - String? userId = _user.id; +// Future restore() async { +// String? userId = _user.id; - // Load grades from the database - if (userId != null) { - final userQuery = _database.userQuery; +// // Load grades from the database +// if (userId != null) { +// final userQuery = _database.userQuery; - _grades = await userQuery.getGrades(userId: userId); - await convertBySettings(); - _groupAvg = await userQuery.getGroupAverages(userId: userId); - notifyListeners(); - DateTime lastSeenDB = await userQuery.lastSeenGrade(userId: userId); - if (lastSeenDB.millisecondsSinceEpoch == 0 || - lastSeenDB.year == 0 || - !_settings.gradeOpeningFun) { - _lastSeen = DateTime.now(); - await seenAll(); - } else { - _lastSeen = lastSeenDB; - } - notifyListeners(); - } - } +// _grades = await userQuery.getGrades(userId: userId); +// await convertBySettings(); +// _groupAvg = await userQuery.getGroupAverages(userId: userId); +// notifyListeners(); +// DateTime lastSeenDB = await userQuery.lastSeenGrade(userId: userId); +// if (lastSeenDB.millisecondsSinceEpoch == 0 || +// lastSeenDB.year == 0 || +// !_settings.gradeOpeningFun) { +// _lastSeen = DateTime.now(); +// await seenAll(); +// } else { +// _lastSeen = lastSeenDB; +// } +// notifyListeners(); +// } +// } - // good student mode, renamed subjects - Future convertBySettings() async { - Map renamedSubjects = _settings.renamedSubjectsEnabled - ? await _database.userQuery.renamedSubjects(userId: _user.user!.id) - : {}; - Map renamedTeachers = _settings.renamedTeachersEnabled - ? await _database.userQuery.renamedTeachers(userId: _user.user!.id) - : {}; +// // good student mode, renamed subjects +// Future convertBySettings() async { +// Map renamedSubjects = _settings.renamedSubjectsEnabled +// ? await _database.userQuery.renamedSubjects(userId: _user.user!.id) +// : {}; +// Map renamedTeachers = _settings.renamedTeachersEnabled +// ? await _database.userQuery.renamedTeachers(userId: _user.user!.id) +// : {}; - for (Grade grade in _grades) { - grade.subject.renamedTo = - renamedSubjects.isNotEmpty ? renamedSubjects[grade.subject.id] : null; - grade.teacher.renamedTo = - renamedTeachers.isNotEmpty ? renamedTeachers[grade.teacher.id] : null; +// for (Grade grade in _grades) { +// grade.subject.renamedTo = +// renamedSubjects.isNotEmpty ? renamedSubjects[grade.subject.id] : null; +// grade.teacher.renamedTo = +// renamedTeachers.isNotEmpty ? renamedTeachers[grade.teacher.id] : null; - grade.value.value = - _settings.goodStudent ? 5 : grade.json!["SzamErtek"] ?? 0; - grade.value.valueName = _settings.goodStudent - ? "Jeles".i18n - : '${grade.json!["SzovegesErtek"]}' - .replaceAll(RegExp(r'[(]+[12345]?[)]'), '') - .i18n; - grade.value.shortName = _settings.goodStudent - ? "Jeles".i18n - : '${grade.json!["SzovegesErtekelesRovidNev"]}' != "null" && - '${grade.json!["SzovegesErtekelesRovidNev"]}' != "-" && - '${grade.json!["SzovegesErtekelesRovidNev"]}' - .replaceAll(RegExp(r'[0123456789]+[%]?'), '') != - "" - ? '${grade.json!["SzovegesErtekelesRovidNev"]}'.i18n - : grade.value.valueName; - } +// grade.value.value = +// _settings.goodStudent ? 5 : grade.json!["SzamErtek"] ?? 0; +// grade.value.valueName = _settings.goodStudent +// ? "Jeles".i18n +// : '${grade.json!["SzovegesErtek"]}' +// .replaceAll(RegExp(r'[(]+[12345]?[)]'), '') +// .i18n; +// grade.value.shortName = _settings.goodStudent +// ? "Jeles".i18n +// : '${grade.json!["SzovegesErtekelesRovidNev"]}' != "null" && +// '${grade.json!["SzovegesErtekelesRovidNev"]}' != "-" && +// '${grade.json!["SzovegesErtekelesRovidNev"]}' +// .replaceAll(RegExp(r'[0123456789]+[%]?'), '') != +// "" +// ? '${grade.json!["SzovegesErtekelesRovidNev"]}'.i18n +// : grade.value.valueName; +// } - notifyListeners(); - } +// notifyListeners(); +// } - // Fetches Grades from the Kreta API then stores them in the database - Future fetch() async { - User? user = _user.user; - if (user == null) throw "Cannot fetch Grades for User null"; - String iss = user.instituteCode; +// // fetch subjects from kreten then store them +// Future fetch() async { +// User? user = _user.user; +// if (user == null) throw "Cannot fetch Subjects for User null"; +// String iss = user.instituteCode; - List? gradesJson = await _kreta.getAPI(KretaAPI.grades(iss)); - if (gradesJson == null) throw "Cannot fetch Grades for User ${user.id}"; - List grades = gradesJson.map((e) => Grade.fromJson(e)).toList(); +// List? gradesJson = await _kreta.getAPI(KretaAPI.subjects(iss, "")); +// if (gradesJson == null) throw "Cannot fetch Subjects for User ${user.id}"; +// List grades = gradesJson.map((e) => Grade.fromJson(e)).toList(); - if (grades.isNotEmpty || _grades.isNotEmpty) await store(grades); +// if (grades.isNotEmpty || _grades.isNotEmpty) await store(grades); - List? groupsJson = await _kreta.getAPI(KretaAPI.groups(iss)); - if (groupsJson == null || groupsJson.isEmpty) { - throw "Cannot fetch Groups for User ${user.id}"; - } - _groups = (groupsJson[0]["OktatasNevelesiFeladat"] ?? {})["Uid"] ?? ""; +// List? groupsJson = await _kreta.getAPI(KretaAPI.groups(iss)); +// if (groupsJson == null || groupsJson.isEmpty) { +// throw "Cannot fetch Groups for User ${user.id}"; +// } +// _groups = (groupsJson[0]["OktatasNevelesiFeladat"] ?? {})["Uid"] ?? ""; - List? groupAvgJson = - await _kreta.getAPI(KretaAPI.groupAverages(iss, _groups)); - if (groupAvgJson == null) { - throw "Cannot fetch Class Averages for User ${user.id}"; - } - final groupAvgs = - groupAvgJson.map((e) => GroupAverage.fromJson(e)).toList(); - await storeGroupAvg(groupAvgs); - } +// List? groupAvgJson = +// await _kreta.getAPI(KretaAPI.groupAverages(iss, _groups)); +// if (groupAvgJson == null) { +// throw "Cannot fetch Class Averages for User ${user.id}"; +// } +// final groupAvgs = +// groupAvgJson.map((e) => GroupAverage.fromJson(e)).toList(); +// await storeGroupAvg(groupAvgs); +// } - // Stores Grades in the database - Future store(List grades) async { - User? user = _user.user; - if (user == null) throw "Cannot store Grades for User null"; - String userId = user.id; +// // store subjects in db +// Future store(List grades) async { +// User? user = _user.user; +// if (user == null) throw "Cannot store Grades for User null"; +// String userId = user.id; - await _database.userStore.storeGrades(grades, userId: userId); - _grades = grades; - await convertBySettings(); - } +// await _database.userStore.storeGrades(grades, userId: userId); +// _grades = grades; +// await convertBySettings(); +// } - Future storeGroupAvg(List groupAvgs) async { - _groupAvg = groupAvgs; +// Future storeGroupAvg(List groupAvgs) async { +// _groupAvg = groupAvgs; - User? user = _user.user; - if (user == null) throw "Cannot store Grades for User null"; - String userId = user.id; - await _database.userStore.storeGroupAverages(groupAvgs, userId: userId); - notifyListeners(); - } -} +// User? user = _user.user; +// if (user == null) throw "Cannot store Grades for User null"; +// String userId = user.id; +// await _database.userStore.storeGroupAverages(groupAvgs, userId: userId); +// notifyListeners(); +// } +// }