SubjectAverage átírása, getLessons törlése

This commit is contained in:
2025-09-29 21:43:05 +02:00
committed by Armand
parent 0bcdf35060
commit f31b719605

View File

@@ -2,8 +2,8 @@ import 'dart:convert';
import 'dart:math';
import 'package:dio/dio.dart';
import 'package:firka/helpers/api/model/all_lessons.dart';
import 'package:firka/helpers/api/model/class_group.dart';
import 'package:firka/helpers/api/model/homework.dart';
import 'package:firka/helpers/api/model/timetable.dart';
import 'package:firka/helpers/db/models/generic_cache_model.dart';
import 'package:firka/helpers/db/models/timetable_cache_model.dart';
@@ -17,7 +17,6 @@ import '../../debug_helper.dart';
import '../consts.dart';
import '../exceptions/token.dart';
import '../model/grade.dart';
import '../model/homework.dart';
import '../model/notice_board.dart';
import '../model/omission.dart';
import '../model/student.dart';
@@ -350,17 +349,28 @@ class KretaClient {
return ApiResponse(items, status, err, cached);
}
ApiResponse<List<SubjectAverage>>? subjectAverageCache;
Future<ApiResponse<List<SubjectAverage>>> getSubjectAverage(
ClassGroup classGroup,
{bool forceCache = false}) async {
var (resp, status, ex, cached) = await _cachingGet(
CacheId.getSubjectAvg,
KretaEndpoints.getSubjectAvg(model.iss!, classGroup.studyGroup.uid),
forceCache,
0);
{bool forceCache = true}) async {
String? err;
if (classGroup.studyTask == null) {
err = "classGroup.studyTask is null";
logger.warning(err);
return ApiResponse(
List<SubjectAverage>.empty(growable: true), 0, err, false);
}
if (!forceCache) {
subjectAverageCache = null;
} else if (subjectAverageCache != null) {
return subjectAverageCache!;
}
var studyTaskUid = classGroup.studyTask!.uid.toString().split(",").first;
var (resp, status, ex, cached) = await _cachingGet(CacheId.getSubjectAvg,
KretaEndpoints.getSubjectAvg(model.iss!, studyTaskUid), forceCache, 0);
var items = List<SubjectAverage>.empty(growable: true);
String? err;
try {
List<dynamic> rawItems = resp;
for (var item in rawItems) {
@@ -374,6 +384,7 @@ class KretaClient {
err = ex.toString();
}
if (ex == null) subjectAverageCache = ApiResponse(items, 200, null, true);
return ApiResponse(items, status, err, cached);
}
@@ -580,42 +591,6 @@ class KretaClient {
return ApiResponse(lessons, 200, err, cached);
}
Future<ApiResponse<List<AllLessons>>> getLessons(
{bool forceCache = true}) async {
var (resp, status, ex, cached) = await _cachingGet(
CacheId.getLessons,
KretaEndpoints.getLessons(model.iss!),
forceCache,
0,
);
var items = <AllLessons>[];
String? err;
try {
if (resp is List) {
for (var item in resp) {
if (item != null && item is Map<String, dynamic>) {
items.add(AllLessons.fromJson(item));
} else {
logger.warning("$item");
}
}
} else {
err = "${resp.runtimeType}";
}
} catch (e, stack) {
err = e.toString();
logger.warning(e, stack);
}
if (ex != null) {
err = ex.toString();
}
return ApiResponse(items, status, err, cached);
}
Future<ApiResponse<List<Test>>> getTests({bool forceCache = true}) async {
var (resp, status, ex, cached) = await _cachingGet(
CacheId.getTests, KretaEndpoints.getTests(model.iss!), forceCache, 0);