146 lines
6.6 KiB
Dart
146 lines
6.6 KiB
Dart
import 'package:intl/intl.dart';
|
|
|
|
class KretaAPI {
|
|
// IDP API
|
|
static const login = BaseKreta.kretaIdp + KretaApiEndpoints.token;
|
|
static const logout = BaseKreta.kretaIdp + KretaApiEndpoints.revoke;
|
|
static const nonce = BaseKreta.kretaIdp + KretaApiEndpoints.nonce;
|
|
static const clientId = "kreta-ellenorzo-mobile-android";
|
|
|
|
// ELLENORZO API
|
|
static String notes(String iss) =>
|
|
BaseKreta.kreta(iss) + KretaApiEndpoints.notes;
|
|
static String events(String iss) =>
|
|
BaseKreta.kreta(iss) + KretaApiEndpoints.events;
|
|
static String student(String iss) =>
|
|
BaseKreta.kreta(iss) + KretaApiEndpoints.student;
|
|
static String grades(String iss) =>
|
|
BaseKreta.kreta(iss) + KretaApiEndpoints.grades;
|
|
static String absences(String iss) =>
|
|
BaseKreta.kreta(iss) + KretaApiEndpoints.absences;
|
|
static String groups(String iss) =>
|
|
BaseKreta.kreta(iss) + KretaApiEndpoints.groups;
|
|
static String groupAverages(String iss, String uid) =>
|
|
"${BaseKreta.kreta(iss)}${KretaApiEndpoints.groupAverages}?oktatasiNevelesiFeladatUid=$uid";
|
|
static String averages(String iss, String uid) =>
|
|
"${BaseKreta.kreta(iss)}${KretaApiEndpoints.averages}?oktatasiNevelesiFeladatUid=$uid";
|
|
static String timetable(String iss, {DateTime? start, DateTime? end}) =>
|
|
BaseKreta.kreta(iss) +
|
|
KretaApiEndpoints.timetable +
|
|
(start != null && end != null
|
|
? "?datumTol=${start.toUtc().toIso8601String()}&datumIg=${end.toUtc().toIso8601String()}"
|
|
: "");
|
|
static String exams(String iss) =>
|
|
BaseKreta.kreta(iss) + KretaApiEndpoints.exams;
|
|
static String homework(String iss, {DateTime? start, String? id}) =>
|
|
BaseKreta.kreta(iss) +
|
|
KretaApiEndpoints.homework +
|
|
(id != null ? "/$id" : "") +
|
|
(id == null && start != null
|
|
? "?datumTol=${DateFormat('yyyy-MM-dd').format(start)}"
|
|
: "");
|
|
static String capabilities(String iss) =>
|
|
BaseKreta.kreta(iss) + KretaApiEndpoints.capabilities;
|
|
static String downloadHomeworkAttachments(
|
|
String iss, String uid, String type) =>
|
|
BaseKreta.kreta(iss) +
|
|
KretaApiEndpoints.downloadHomeworkAttachments(uid, type);
|
|
static String subjects(String iss, String uid) =>
|
|
"${BaseKreta.kreta(iss)}${KretaApiEndpoints.subjects}?oktatasiNevelesiFeladatUid=$uid";
|
|
// Structure:
|
|
// {
|
|
// "Uid": 000,
|
|
// "Tantargy": {
|
|
// "Uid": 000,
|
|
// "Nev": "Irodalom",
|
|
// "Kategoria": {
|
|
// "Uid": "000,magyar_nyelv_es_irodalom",
|
|
// "Nev": "magyar_nyelv_es_irodalom",
|
|
// "Leiras": "Magyar nyelv és irodalom"
|
|
// },
|
|
// "SortIndex": 0,
|
|
// },
|
|
// "Atlag": null, // float
|
|
// "AtlagAlakulasaIdoFuggvenyeben": Array[], // no idea what this is
|
|
// "SulyozottOsztalyzatOsszege": null, // int | float
|
|
// "SulyozottOsztalyzatSzama": null, // int | float
|
|
// "SortIndex": 0
|
|
// }
|
|
// refer to https://discord.com/channels/1111649116020285532/1111798771513303102/1148368925969612920
|
|
|
|
// ADMIN API
|
|
static const sendMessage =
|
|
BaseKreta.kretaAdmin + KretaAdminEndpoints.sendMessage;
|
|
static String messages(String endpoint) =>
|
|
BaseKreta.kretaAdmin + KretaAdminEndpoints.messages(endpoint);
|
|
static String message(String id) =>
|
|
BaseKreta.kretaAdmin + KretaAdminEndpoints.message(id);
|
|
static const recipientCategories =
|
|
BaseKreta.kretaAdmin + KretaAdminEndpoints.recipientCategories;
|
|
static const availableCategories =
|
|
BaseKreta.kretaAdmin + KretaAdminEndpoints.availableCategories;
|
|
static const recipientTeachers =
|
|
BaseKreta.kretaAdmin + KretaAdminEndpoints.recipientTeachers;
|
|
static const recipientDirectorate =
|
|
BaseKreta.kretaAdmin + KretaAdminEndpoints.recipientDirectorate;
|
|
static const uploadAttachment =
|
|
BaseKreta.kretaAdmin + KretaAdminEndpoints.uploadAttachment;
|
|
static String downloadAttachment(String id) =>
|
|
BaseKreta.kretaAdmin + KretaAdminEndpoints.downloadAttachment(id);
|
|
static const trashMessage =
|
|
BaseKreta.kretaAdmin + KretaAdminEndpoints.trashMessage;
|
|
static const deleteMessage =
|
|
BaseKreta.kretaAdmin + KretaAdminEndpoints.deleteMessage;
|
|
}
|
|
|
|
class BaseKreta {
|
|
static String kreta(String iss) => "https://$iss.e-kreta.hu";
|
|
static const kretaIdp = "https://idp.e-kreta.hu";
|
|
static const kretaAdmin = "https://eugyintezes.e-kreta.hu";
|
|
static const kretaFiles = "https://files.e-kreta.hu";
|
|
}
|
|
|
|
class KretaApiEndpoints {
|
|
static const token = "/connect/token";
|
|
static const revoke = "/connect/revocation";
|
|
static const nonce = "/nonce";
|
|
static const notes = "/ellenorzo/V3/Sajat/Feljegyzesek";
|
|
static const events = "/ellenorzo/V3/Sajat/FaliujsagElemek";
|
|
static const student = "/ellenorzo/V3/Sajat/TanuloAdatlap";
|
|
static const grades = "/ellenorzo/V3/Sajat/Ertekelesek";
|
|
static const absences = "/ellenorzo/V3/Sajat/Mulasztasok";
|
|
static const groups = "/ellenorzo/V3/Sajat/OsztalyCsoportok";
|
|
static const groupAverages =
|
|
"/ellenorzo/V3/Sajat/Ertekelesek/Atlagok/OsztalyAtlagok";
|
|
static const averages = "/ellenorzo/V3/idk";
|
|
static const timetable = "/ellenorzo/V3/Sajat/OrarendElemek";
|
|
static const exams = "/ellenorzo/V3/Sajat/BejelentettSzamonkeresek";
|
|
static const homework = "/ellenorzo/V3/Sajat/HaziFeladatok";
|
|
// static const homeworkDone = "/ellenorzo/V3/Sajat/HaziFeladatok/Megoldva"; // Removed from the API
|
|
static const capabilities = "/ellenorzo/V3/Sajat/Intezmenyek";
|
|
static String downloadHomeworkAttachments(String uid, String type) =>
|
|
"/ellenorzo/V3/Sajat/Csatolmany/$uid";
|
|
static const subjects =
|
|
"/ellenorzo/V3/Sajat/Ertekelesek/Atlagok/TantargyiAtlagok";
|
|
}
|
|
|
|
class KretaAdminEndpoints {
|
|
//static const messages = "/api/v1/kommunikacio/postaladaelemek/sajat";
|
|
static const sendMessage = "/api/v1/kommunikacio/uzenetek";
|
|
static String messages(String endpoint) =>
|
|
"/api/v1/kommunikacio/postaladaelemek/$endpoint";
|
|
static String message(String id) =>
|
|
"/api/v1/kommunikacio/postaladaelemek/$id";
|
|
static const recipientCategories = "/api/v1/adatszotarak/cimzetttipusok";
|
|
static const availableCategories = "/api/v1/kommunikacio/cimezhetotipusok";
|
|
static const recipientTeachers = "/api/v1/kreta/alkalmazottak/tanar";
|
|
static const recipientDirectorate = "/api/v1/kreta/alkalmazottak/igazgatosag";
|
|
static const uploadAttachment = "/ideiglenesfajlok";
|
|
static String downloadAttachment(String id) =>
|
|
"/api/v1/dokumentumok/uzenetek/$id";
|
|
static const trashMessage = "/api/v1/kommunikacio/postaladaelemek/kuka";
|
|
static const deleteMessage = "/api/v1/kommunikacio/postaladaelemek/torles";
|
|
// profile management
|
|
static const editProfile = "/api/profilapi/saveprofildata";
|
|
}
|