Skip to content

Commit e0a82c9

Browse files
client+server: decouple pupil book lendings from pupil, fix server future call, add user.pupilsAuth to endpoint and UI, bugs & fixes
1 parent 23d2a9c commit e0a82c9

26 files changed

Lines changed: 636 additions & 186 deletions

File tree

school_data_hub_client/lib/src/protocol/client.dart

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,7 @@ class EndpointAdminUser extends _i1.EndpointRef {
336336
String? schooldayEventsProcessingTeam,
337337
String? matrixUserId,
338338
int? credit,
339+
Set<int>? pupilsAuth,
339340
}) =>
340341
caller.callServerEndpoint<_i11.User>(
341342
'adminUser',
@@ -353,6 +354,7 @@ class EndpointAdminUser extends _i1.EndpointRef {
353354
'schooldayEventsProcessingTeam': schooldayEventsProcessingTeam,
354355
'matrixUserId': matrixUserId,
355356
'credit': credit,
357+
'pupilsAuth': pupilsAuth,
356358
},
357359
);
358360

@@ -368,6 +370,7 @@ class EndpointAdminUser extends _i1.EndpointRef {
368370
required int reliefTimeUnits,
369371
required int credit,
370372
required bool isTester,
373+
Set<int>? pupilsAuth,
371374
}) =>
372375
caller.callServerEndpoint<_i11.User>(
373376
'adminUser',
@@ -383,6 +386,7 @@ class EndpointAdminUser extends _i1.EndpointRef {
383386
'reliefTimeUnits': reliefTimeUnits,
384387
'credit': credit,
385388
'isTester': isTester,
389+
'pupilsAuth': pupilsAuth,
386390
},
387391
);
388392

@@ -898,12 +902,12 @@ class EndpointPupilBookLending extends _i1.EndpointRef {
898902
@override
899903
String get name => 'pupilBookLending';
900904

901-
_i2.Future<_i7.PupilData> postPupilBookLending(
905+
_i2.Future<_i29.PupilBookLending> postPupilBookLending(
902906
int pupilId,
903907
String libraryId,
904908
String lentBy,
905909
) =>
906-
caller.callServerEndpoint<_i7.PupilData>(
910+
caller.callServerEndpoint<_i29.PupilBookLending>(
907911
'pupilBookLending',
908912
'postPupilBookLending',
909913
{
@@ -928,28 +932,28 @@ class EndpointPupilBookLending extends _i1.EndpointRef {
928932
{'lendingId': lendingId},
929933
);
930934

931-
_i2.Future<_i7.PupilData> updatePupilBookLending(
935+
_i2.Future<_i29.PupilBookLending> updatePupilBookLending(
932936
_i29.PupilBookLending pupilBookLending) =>
933-
caller.callServerEndpoint<_i7.PupilData>(
937+
caller.callServerEndpoint<_i29.PupilBookLending>(
934938
'pupilBookLending',
935939
'updatePupilBookLending',
936940
{'pupilBookLending': pupilBookLending},
937941
);
938942

939-
_i2.Future<_i7.PupilData> deletePupilBookLending(String lendingId) =>
940-
caller.callServerEndpoint<_i7.PupilData>(
943+
_i2.Future<bool> deletePupilBookLending(String lendingId) =>
944+
caller.callServerEndpoint<bool>(
941945
'pupilBookLending',
942946
'deletePupilBookLending',
943947
{'lendingId': lendingId},
944948
);
945949

946950
/// Add a file to a PupilBookLending record
947-
_i2.Future<_i7.PupilData> addFileToPupilBookLending(
951+
_i2.Future<_i29.PupilBookLending> addFileToPupilBookLending(
948952
String lendingId,
949953
String filePath,
950954
String createdBy,
951955
) =>
952-
caller.callServerEndpoint<_i7.PupilData>(
956+
caller.callServerEndpoint<_i29.PupilBookLending>(
953957
'pupilBookLending',
954958
'addFileToPupilBookLending',
955959
{

school_data_hub_client/lib/src/protocol/protocol.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1303,6 +1303,11 @@ class Protocol extends _i1.SerializationManager {
13031303
if (t == List<String>) {
13041304
return (data as List).map((e) => deserialize<String>(e)).toList() as T;
13051305
}
1306+
if (t == _i1.getType<Set<int>?>()) {
1307+
return (data != null
1308+
? (data as List).map((e) => deserialize<int>(e)).toSet()
1309+
: null) as T;
1310+
}
13061311
if (t == Set<int>) {
13071312
return (data as List).map((e) => deserialize<int>(e)).toSet() as T;
13081313
}

school_data_hub_flutter/lib/common/widgets/hub_document/hub_documents_section.dart

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import 'package:school_data_hub_flutter/common/widgets/hub_document/encrypted_do
1212
import 'package:school_data_hub_flutter/common/widgets/media_capture_buttons.dart';
1313
import 'package:school_data_hub_flutter/core/auth/auth_clearance_helper.dart';
1414
import 'package:school_data_hub_flutter/core/models/datetime_extensions.dart';
15-
import 'package:school_data_hub_flutter/core/session/hub_session_manager.dart';
1615

1716
/// A reusable widget for displaying and managing document collections.
1817
///
@@ -86,6 +85,28 @@ class HubDocumentsSectionWidget extends StatelessWidget {
8685
Row(
8786
mainAxisSize: MainAxisSize.min,
8887
children: [
88+
if (totalCount == 0)
89+
SizedBox(
90+
height: 70,
91+
width: (21 / 30) * 70,
92+
child: Container(
93+
decoration: BoxDecoration(
94+
color: const Color.fromARGB(255, 221, 221, 221),
95+
borderRadius: BorderRadius.circular(5),
96+
),
97+
child: const Center(
98+
child: Text(
99+
textAlign: TextAlign.center,
100+
'Keine\nDokumente',
101+
style: TextStyle(
102+
fontSize: 8,
103+
color: Color.fromARGB(255, 110, 110, 110),
104+
fontWeight: FontWeight.bold,
105+
),
106+
),
107+
),
108+
),
109+
),
89110
for (final file in imageFiles) ...[
90111
_DocumentItem(
91112
file: file,

school_data_hub_flutter/lib/core/init/init_on_user_auth.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import 'package:school_data_hub_flutter/features/authorizations/domain/authoriza
1313
import 'package:school_data_hub_flutter/features/authorizations/domain/filters/authorization_filter_manager.dart';
1414
import 'package:school_data_hub_flutter/features/authorizations/domain/filters/pupil_authorization_filter_manager.dart';
1515
import 'package:school_data_hub_flutter/features/books/domain/book_manager.dart';
16+
import 'package:school_data_hub_flutter/features/books/domain/pupil_book_lending_manager.dart';
1617
import 'package:school_data_hub_flutter/features/learning/domain/competence_manager.dart';
1718
import 'package:school_data_hub_flutter/features/learning/domain/filters/competence_filter_manager.dart';
1819
import 'package:school_data_hub_flutter/features/learning_support/domain/filters/learning_support_filter_manager.dart';
@@ -96,6 +97,12 @@ class InitOnUserAuth {
9697
dispose: (m) => m.dispose(),
9798
);
9899

100+
di.registerSingletonAsync<PupilBookLendingManager>(
101+
() => PupilBookLendingManager().init(),
102+
dependsOn: [HubSessionManager, PupilProxyManager],
103+
dispose: (m) => m.dispose(),
104+
);
105+
99106
di.registerSingletonAsync<SchoolDataMainManager>(
100107
() => SchoolDataMainManager().init(),
101108
dispose: (m) => m.dispose(),

school_data_hub_flutter/lib/features/books/data/pupil_book_api_service.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,25 @@ class PupilBookApiService {
66
Client get _client => di<Client>();
77
//- create pupil book lending
88

9-
Future<PupilData?> postPupilBookLending({
9+
Future<PupilBookLending?> postPupilBookLending({
1010
required int pupilId,
1111
required String libraryId,
1212
required String lentBy,
1313
}) async {
14-
final pupil = await ClientHelper.apiCall(
14+
final pupilBookLending = await ClientHelper.apiCall(
1515
call: () => _client.pupilBookLending.postPupilBookLending(
1616
pupilId,
1717
libraryId,
1818
lentBy,
1919
),
2020
errorMessage: 'Fehler beim Erstellen des Leihvorgangs',
2121
);
22-
return pupil;
22+
return pupilBookLending;
2323
}
2424

2525
//- update pupil book lending
2626

27-
Future<PupilData?> updatePupilBookLending({
27+
Future<PupilBookLending?> updatePupilBookLending({
2828
required PupilBookLending bookLending,
2929
}) async {
3030
final pupil = await ClientHelper.apiCall(
@@ -36,11 +36,11 @@ class PupilBookApiService {
3636

3737
//- delete pupil book
3838

39-
Future<PupilData?> deletePupilBookLending(String lendingId) async {
40-
final pupil = await ClientHelper.apiCall(
39+
Future<bool?> deletePupilBookLending(String lendingId) async {
40+
final success = await ClientHelper.apiCall(
4141
call: () => _client.pupilBookLending.deletePupilBookLending(lendingId),
4242
errorMessage: 'Fehler beim Löschen des Leihvorgangs',
4343
);
44-
return pupil;
44+
return success;
4545
}
4646
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
import 'package:flutter_it/flutter_it.dart';
2+
import 'package:school_data_hub_client/school_data_hub_client.dart';
3+
import 'package:school_data_hub_flutter/core/client/client_helper.dart';
4+
5+
class PupilBookLendingApiService {
6+
Client get _client => di<Client>();
7+
8+
//- read
9+
10+
Future<List<PupilBookLending>?> fetchAllPupilBookLendings() async {
11+
final lendings = await ClientHelper.apiCall(
12+
call: () => _client.pupilBookLending.fetchPupilBookLendings(),
13+
errorMessage: 'Fehler beim Laden der Leihvorgänge',
14+
);
15+
return lendings;
16+
}
17+
18+
Future<PupilBookLending?> fetchPupilBookLendingByLendingId(
19+
String lendingId,
20+
) async {
21+
final lending = await ClientHelper.apiCall(
22+
call: () =>
23+
_client.pupilBookLending.fetchPupilBookLendingByLendingId(lendingId),
24+
errorMessage: 'Fehler beim Laden des Leihvorgangs',
25+
);
26+
return lending;
27+
}
28+
29+
//- create
30+
31+
Future<PupilBookLending?> postPupilBookLending({
32+
required int pupilId,
33+
required String libraryId,
34+
required String lentBy,
35+
}) async {
36+
final lending = await ClientHelper.apiCall(
37+
call: () => _client.pupilBookLending.postPupilBookLending(
38+
pupilId,
39+
libraryId,
40+
lentBy,
41+
),
42+
errorMessage: 'Fehler beim Erstellen des Leihvorgangs',
43+
);
44+
return lending;
45+
}
46+
47+
//- update
48+
49+
Future<PupilBookLending?> updatePupilBookLending({
50+
required PupilBookLending bookLending,
51+
}) async {
52+
final lending = await ClientHelper.apiCall(
53+
call: () => _client.pupilBookLending.updatePupilBookLending(bookLending),
54+
errorMessage: 'Fehler beim Aktualisieren des Leihvorgangs',
55+
);
56+
return lending;
57+
}
58+
59+
//- delete
60+
61+
Future<bool?> deletePupilBookLending({required String lendingId}) async {
62+
final success = await ClientHelper.apiCall(
63+
call: () => _client.pupilBookLending.deletePupilBookLending(lendingId),
64+
errorMessage: 'Fehler beim Löschen des Leihvorgangs',
65+
);
66+
return success;
67+
}
68+
}

0 commit comments

Comments
 (0)