feat: from, to params

This commit is contained in:
checkedear
2026-05-15 13:59:46 +02:00
parent 613b66bc22
commit e8f1f18725

View File

@@ -1,7 +1,10 @@
import 'package:intl/intl.dart';
/// URL builders for Kreta ellenorzo API that depend only on [iss].
/// Auth-related URLs (login, token) and Constants stay in the app (firka).
class KretaEndpoints {
static const String kretaBase = "e-kreta.hu";
static DateFormat dateTimeFormat = DateFormat('yyyy-MM-dd');
static String kreta(String iss) {
if (iss == "firka-test") {
@@ -11,20 +14,40 @@ class KretaEndpoints {
}
}
static String dateQuery(DateTime? from, DateTime? to) {
StringBuffer buffer = StringBuffer();
if (from == null) {
if (to == null) {
return buffer.toString();
}
throw Exception("'from' is required to use 'to'");
}
buffer.write("?datumTol=");
buffer.write(dateTimeFormat.format(from));
if (to != null) {
buffer.write("&datumIg=");
buffer.write(dateTimeFormat.format(to));
}
return buffer.toString();
}
static String getStudentUrl(String iss) =>
"${kreta(iss)}/ellenorzo/v3/sajat/TanuloAdatlap";
static String getClassGroups(String iss) =>
"${kreta(iss)}/ellenorzo/v3/sajat/OsztalyCsoportok";
static String getNoticeBoard(String iss) =>
"${kreta(iss)}/ellenorzo/v3/sajat/FaliujsagElemek";
static String getNoticeBoard(String iss, [DateTime? from, DateTime? to]) =>
"${kreta(iss)}/ellenorzo/v3/sajat/FaliujsagElemek${dateQuery(from, to)}";
static String getInfoBoard(String iss) =>
"${kreta(iss)}/ellenorzo/v3/sajat/Feljegyzesek";
static String getInfoBoard(String iss, [DateTime? from, DateTime? to]) =>
"${kreta(iss)}/ellenorzo/v3/sajat/Feljegyzesek${dateQuery(from, to)}";
static String getGrades(String iss) =>
"${kreta(iss)}/ellenorzo/v3/sajat/Ertekelesek";
static String getGrades(String iss, [DateTime? from, DateTime? to]) =>
"${kreta(iss)}/ellenorzo/v3/sajat/Ertekelesek${dateQuery(from, to)}";
static String getSubjectAvg(String iss, String studyGroupId) =>
"${kreta(iss)}/ellenorzo/v3/sajat/Ertekelesek/Atlagok/TantargyiAtlagok?oktatasiNevelesiFeladatUid=$studyGroupId&oktatasiNevelesiFeladatUid=$studyGroupId";
@@ -32,17 +55,17 @@ class KretaEndpoints {
static String getClassGroupAvg(String iss, String studyGroupId) =>
"${kreta(iss)}/ellenorzo/v3/sajat/Ertekelesek/Atlagok/OsztalyAtlagok?oktatasiNevelesiFeladatUid=$studyGroupId&oktatasiNevelesiFeladatUid=$studyGroupId";
static String getTimeTable(String iss) =>
"${kreta(iss)}/ellenorzo/v3/sajat/OrarendElemek";
static String getTimeTable(String iss, [DateTime? from, DateTime? to]) =>
"${kreta(iss)}/ellenorzo/v3/sajat/OrarendElemek${dateQuery(from, to)}";
static String getOmissions(String iss) =>
"${kreta(iss)}/ellenorzo/v3/sajat/Mulasztasok";
static String getOmissions(String iss, [DateTime? from, DateTime? to]) =>
"${kreta(iss)}/ellenorzo/v3/sajat/Mulasztasok${dateQuery(from, to)}";
static String getHomework(String iss) =>
"${kreta(iss)}/ellenorzo/v3/sajat/HaziFeladatok";
static String getHomework(String iss, [DateTime? from, DateTime? to]) =>
"${kreta(iss)}/ellenorzo/v3/sajat/HaziFeladatok${dateQuery(from, to)}";
static String getTests(String iss) =>
"${kreta(iss)}/ellenorzo/v3/sajat/BejelentettSzamonkeresek";
static String getTests(String iss, [DateTime? from, DateTime? to]) =>
"${kreta(iss)}/ellenorzo/v3/sajat/BejelentettSzamonkeresek${dateQuery(from, to)}";
static String getLessons(String iss) =>
"${kreta(iss)}/dktapi/intezmenyek/munkaterek/tanulok";