diff --git a/filcnaplo/test/widget_test.dart b/filcnaplo/test/widget_test.dart index a4b75df..1b85968 100644 --- a/filcnaplo/test/widget_test.dart +++ b/filcnaplo/test/widget_test.dart @@ -1,30 +1,30 @@ -// This is a basic Flutter widget test. -// -// To perform an interaction with a widget in your test, use the WidgetTester -// utility in the flutter_test package. For example, you can send tap and scroll -// gestures. You can also use WidgetTester to find child widgets in the widget -// tree, read text, and verify that the values of widget properties are correct. +// // This is a basic Flutter widget test. +// // +// // To perform an interaction with a widget in your test, use the WidgetTester +// // utility in the flutter_test package. For example, you can send tap and scroll +// // gestures. You can also use WidgetTester to find child widgets in the widget +// // tree, read text, and verify that the values of widget properties are correct. -import 'package:flutter/material.dart'; -import 'package:flutter_test/flutter_test.dart'; +// import 'package:flutter/material.dart'; +// import 'package:flutter_test/flutter_test.dart'; -import 'package:filcnaplo/main.dart'; +// import 'package:filcnaplo/main.dart'; -void main() { - testWidgets('Counter increments smoke test', (WidgetTester tester) async { - // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); +// void main() { +// testWidgets('Counter increments smoke test', (WidgetTester tester) async { +// // Build our app and trigger a frame. +// await tester.pumpWidget(const MyApp()); - // Verify that our counter starts at 0. - expect(find.text('0'), findsOneWidget); - expect(find.text('1'), findsNothing); +// // Verify that our counter starts at 0. +// expect(find.text('0'), findsOneWidget); +// expect(find.text('1'), findsNothing); - // Tap the '+' icon and trigger a frame. - await tester.tap(find.byIcon(Icons.add)); - await tester.pump(); +// // Tap the '+' icon and trigger a frame. +// await tester.tap(find.byIcon(Icons.add)); +// await tester.pump(); - // Verify that our counter has incremented. - expect(find.text('0'), findsNothing); - expect(find.text('1'), findsOneWidget); - }); -} +// // Verify that our counter has incremented. +// expect(find.text('0'), findsNothing); +// expect(find.text('1'), findsOneWidget); +// }); +// } diff --git a/filcnaplo_kreta_api/lib/client/api.dart b/filcnaplo_kreta_api/lib/client/api.dart index 6371b17..93146d9 100644 --- a/filcnaplo_kreta_api/lib/client/api.dart +++ b/filcnaplo_kreta_api/lib/client/api.dart @@ -7,39 +7,69 @@ class KretaAPI { 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 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; + BaseKreta.kreta(iss) + + KretaApiEndpoints.groupAverages + + "?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; + (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); + (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); // 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 recipientsTeacher = BaseKreta.kretaAdmin + KretaAdminEndpoints.recipientsTeacher; - 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; + 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 recipientsTeacher = + BaseKreta.kretaAdmin + KretaAdminEndpoints.recipientsTeacher; + 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 { @@ -58,25 +88,30 @@ class KretaApiEndpoints { 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 groupAverages = + "/ellenorzo/V3/Sajat/Ertekelesek/Atlagok/OsztalyAtlagok"; 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 String downloadHomeworkAttachments(String uid, String type) => + "/ellenorzo/V3/Sajat/Csatolmany/$uid"; } 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 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 recipientsTeacher = "/api/v1/kreta/alkalmazottak/tanar"; static const uploadAttachment = "/ideiglenesfajlok"; - static String downloadAttachment(String id) => "/api/v1/dokumentumok/uzenetek/$id"; + 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"; } diff --git a/filcnaplo_kreta_api/lib/client/client.dart b/filcnaplo_kreta_api/lib/client/client.dart index 9910d60..d980d0f 100644 --- a/filcnaplo_kreta_api/lib/client/client.dart +++ b/filcnaplo_kreta_api/lib/client/client.dart @@ -66,8 +66,10 @@ class KretaClient { for (int i = 0; i < 3; i++) { if (autoHeader) { - if (!headerMap.containsKey("authorization") && accessToken != null) headerMap["authorization"] = "Bearer $accessToken"; - if (!headerMap.containsKey("user-agent") && userAgent != null) headerMap["user-agent"] = "$userAgent"; + if (!headerMap.containsKey("authorization") && accessToken != null) + headerMap["authorization"] = "Bearer $accessToken"; + if (!headerMap.containsKey("user-agent") && userAgent != null) + headerMap["user-agent"] = "$userAgent"; } res = await client.get(Uri.parse(url), headers: headerMap); @@ -94,7 +96,8 @@ class KretaClient { return res.body; } } on http.ClientException catch (error) { - print("ERROR: KretaClient.getAPI ($url) ClientException: ${error.message}"); + print( + "ERROR: KretaClient.getAPI ($url) ClientException: ${error.message}"); } catch (error) { print("ERROR: KretaClient.getAPI ($url) ${error.runtimeType}: $error"); } @@ -120,9 +123,12 @@ class KretaClient { for (int i = 0; i < 3; i++) { if (autoHeader) { - if (!headerMap.containsKey("authorization") && accessToken != null) headerMap["authorization"] = "Bearer $accessToken"; - if (!headerMap.containsKey("user-agent") && userAgent != null) headerMap["user-agent"] = "$userAgent"; - if (!headerMap.containsKey("content-type")) headerMap["content-type"] = "application/json"; + if (!headerMap.containsKey("authorization") && accessToken != null) + headerMap["authorization"] = "Bearer $accessToken"; + if (!headerMap.containsKey("user-agent") && userAgent != null) + headerMap["user-agent"] = "$userAgent"; + if (!headerMap.containsKey("content-type")) + headerMap["content-type"] = "application/json"; } res = await client.post(Uri.parse(url), headers: headerMap, body: body); @@ -142,9 +148,10 @@ class KretaClient { return res.body; } } on http.ClientException catch (error) { - print("ERROR: KretaClient.getAPI ($url) ClientException: ${error.message}"); + print( + "ERROR: KretaClient.postAPI ($url) ClientException: ${error.message}"); } catch (error) { - print("ERROR: KretaClient.getAPI ($url) ${error.runtimeType}: $error"); + print("ERROR: KretaClient.postAPI ($url) ${error.runtimeType}: $error"); } } @@ -157,7 +164,8 @@ class KretaClient { }; String nonceStr = await getAPI(KretaAPI.nonce, json: false); - Nonce nonce = getNonce(nonceStr, loginUser.username, loginUser.instituteCode); + Nonce nonce = + getNonce(nonceStr, loginUser.username, loginUser.instituteCode); headers.addAll(nonce.header()); if (_settings.presentationMode) { @@ -175,18 +183,25 @@ class KretaClient { )); if (loginRes != null) { - if (loginRes.containsKey("access_token")) accessToken = loginRes["access_token"]; - if (loginRes.containsKey("refresh_token")) refreshToken = loginRes["refresh_token"]; + if (loginRes.containsKey("access_token")) + accessToken = loginRes["access_token"]; + if (loginRes.containsKey("refresh_token")) + refreshToken = loginRes["refresh_token"]; // Update role - loginUser.role = JwtUtils.getRoleFromJWT(accessToken ?? "") ?? Role.student; + loginUser.role = + JwtUtils.getRoleFromJWT(accessToken ?? "") ?? Role.student; } if (refreshToken != null) { Map? refreshRes = await postAPI(KretaAPI.login, - headers: headers, body: User.refreshBody(refreshToken: refreshToken!, instituteCode: loginUser.instituteCode)); + headers: headers, + body: User.refreshBody( + refreshToken: refreshToken!, + instituteCode: loginUser.instituteCode)); if (refreshRes != null) { - if (refreshRes.containsKey("id_token")) idToken = refreshRes["id_token"]; + if (refreshRes.containsKey("id_token")) + idToken = refreshRes["id_token"]; } } }