Merge branch 'dev'

This commit is contained in:
Kima 2023-08-25 21:30:43 +02:00
commit 18b1b00f45
2 changed files with 53 additions and 38 deletions

View File

@ -1,30 +1,30 @@
// This is a basic Flutter widget test. // // This is a basic Flutter widget test.
// // //
// To perform an interaction with a widget in your test, use the WidgetTester // // 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 // // 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 // // 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. // // tree, read text, and verify that the values of widget properties are correct.
import 'package:flutter/material.dart'; // import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; // import 'package:flutter_test/flutter_test.dart';
import 'package:filcnaplo/main.dart'; // import 'package:filcnaplo/main.dart';
void main() { // void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async { // testWidgets('Counter increments smoke test', (WidgetTester tester) async {
// Build our app and trigger a frame. // // Build our app and trigger a frame.
await tester.pumpWidget(const MyApp()); // await tester.pumpWidget(const MyApp());
// Verify that our counter starts at 0. // // Verify that our counter starts at 0.
expect(find.text('0'), findsOneWidget); // expect(find.text('0'), findsOneWidget);
expect(find.text('1'), findsNothing); // expect(find.text('1'), findsNothing);
// Tap the '+' icon and trigger a frame. // // Tap the '+' icon and trigger a frame.
await tester.tap(find.byIcon(Icons.add)); // await tester.tap(find.byIcon(Icons.add));
await tester.pump(); // await tester.pump();
// Verify that our counter has incremented. // // Verify that our counter has incremented.
expect(find.text('0'), findsNothing); // expect(find.text('0'), findsNothing);
expect(find.text('1'), findsOneWidget); // expect(find.text('1'), findsOneWidget);
}); // });
} // }

View File

@ -66,8 +66,10 @@ class KretaClient {
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
if (autoHeader) { if (autoHeader) {
if (!headerMap.containsKey("authorization") && accessToken != null) headerMap["authorization"] = "Bearer $accessToken"; if (!headerMap.containsKey("authorization") && accessToken != null)
if (!headerMap.containsKey("user-agent") && userAgent != null) headerMap["user-agent"] = "$userAgent"; headerMap["authorization"] = "Bearer $accessToken";
if (!headerMap.containsKey("user-agent") && userAgent != null)
headerMap["user-agent"] = "$userAgent";
} }
res = await client.get(Uri.parse(url), headers: headerMap); res = await client.get(Uri.parse(url), headers: headerMap);
@ -94,7 +96,8 @@ class KretaClient {
return res.body; return res.body;
} }
} on http.ClientException catch (error) { } on http.ClientException catch (error) {
print("ERROR: KretaClient.getAPI ($url) ClientException: ${error.message}"); print(
"ERROR: KretaClient.getAPI ($url) ClientException: ${error.message}");
} catch (error) { } catch (error) {
print("ERROR: KretaClient.getAPI ($url) ${error.runtimeType}: $error"); print("ERROR: KretaClient.getAPI ($url) ${error.runtimeType}: $error");
} }
@ -120,9 +123,12 @@ class KretaClient {
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
if (autoHeader) { if (autoHeader) {
if (!headerMap.containsKey("authorization") && accessToken != null) headerMap["authorization"] = "Bearer $accessToken"; if (!headerMap.containsKey("authorization") && accessToken != null)
if (!headerMap.containsKey("user-agent") && userAgent != null) headerMap["user-agent"] = "$userAgent"; headerMap["authorization"] = "Bearer $accessToken";
if (!headerMap.containsKey("content-type")) headerMap["content-type"] = "application/json"; 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); res = await client.post(Uri.parse(url), headers: headerMap, body: body);
@ -142,9 +148,10 @@ class KretaClient {
return res.body; return res.body;
} }
} on http.ClientException catch (error) { } on http.ClientException catch (error) {
print("ERROR: KretaClient.getAPI ($url) ClientException: ${error.message}"); print(
"ERROR: KretaClient.postAPI ($url) ClientException: ${error.message}");
} catch (error) { } 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); 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()); headers.addAll(nonce.header());
if (_settings.presentationMode) { if (_settings.presentationMode) {
@ -175,18 +183,25 @@ class KretaClient {
)); ));
if (loginRes != null) { if (loginRes != null) {
if (loginRes.containsKey("access_token")) accessToken = loginRes["access_token"]; if (loginRes.containsKey("access_token"))
if (loginRes.containsKey("refresh_token")) refreshToken = loginRes["refresh_token"]; accessToken = loginRes["access_token"];
if (loginRes.containsKey("refresh_token"))
refreshToken = loginRes["refresh_token"];
// Update role // Update role
loginUser.role = JwtUtils.getRoleFromJWT(accessToken ?? "") ?? Role.student; loginUser.role =
JwtUtils.getRoleFromJWT(accessToken ?? "") ?? Role.student;
} }
if (refreshToken != null) { if (refreshToken != null) {
Map? refreshRes = await postAPI(KretaAPI.login, 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 != null) {
if (refreshRes.containsKey("id_token")) idToken = refreshRes["id_token"]; if (refreshRes.containsKey("id_token"))
idToken = refreshRes["id_token"];
} }
} }
} }