forked from firka/firka
SubjectAverage átírása, getLessons törlése
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user