added guardian letters with chat and multiple answer functionalities
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
import 'dart:typed_data';
|
||||
|
||||
import '../../../../../api/demo/data/demo_parent_letters.dart';
|
||||
import '../../../../../api/demo/demo_mode.dart';
|
||||
import '../../../../../api/marianumconnect/queries/parent_letters/get_parent_letter.dart';
|
||||
import '../../../../../api/marianumconnect/queries/parent_letters/get_parent_letter_attachment.dart';
|
||||
import '../../../../../api/marianumconnect/queries/parent_letters/parent_letter_models.dart';
|
||||
import '../../../../../api/marianumconnect/queries/parent_letters/post_parent_letter_thread_message.dart';
|
||||
import '../../../../../api/marianumconnect/queries/parent_letters/submit_parent_letter_response.dart';
|
||||
import '../../../infrastructure/repository/repository.dart';
|
||||
import '../bloc/parent_letter_state.dart';
|
||||
|
||||
/// Split from [ParentLettersRepository] because the loadable base binds a
|
||||
/// repository to its state type. Writes never reach this class in demo mode
|
||||
/// (the views guard them).
|
||||
class ParentLetterRepository extends Repository<ParentLetterState> {
|
||||
Future<ParentLetterDetail> getLetter(String letterId) {
|
||||
if (DemoMode.active) {
|
||||
return Future.value(DemoParentLetters.detail(letterId));
|
||||
}
|
||||
return GetParentLetter().run(letterId);
|
||||
}
|
||||
|
||||
Future<ParentLetterDetail> submitResponse({
|
||||
required String letterId,
|
||||
required String childId,
|
||||
required List<ParentLetterAnswer> answers,
|
||||
Uint8List? signaturePng,
|
||||
}) => SubmitParentLetterResponse().run(
|
||||
letterId: letterId,
|
||||
childId: childId,
|
||||
answers: answers,
|
||||
signaturePng: signaturePng,
|
||||
);
|
||||
|
||||
Future<ParentLetterThreadMessage> sendThreadMessage({
|
||||
required String letterId,
|
||||
required String body,
|
||||
required String clientMessageId,
|
||||
}) => PostParentLetterThreadMessage().run(
|
||||
letterId: letterId,
|
||||
body: body,
|
||||
clientMessageId: clientMessageId,
|
||||
);
|
||||
|
||||
Future<Uint8List> getAttachment({
|
||||
required String letterId,
|
||||
required String attachmentId,
|
||||
}) => GetParentLetterAttachment().run(
|
||||
letterId: letterId,
|
||||
attachmentId: attachmentId,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import '../../../../../api/demo/data/demo_parent_letters.dart';
|
||||
import '../../../../../api/demo/demo_mode.dart';
|
||||
import '../../../../../api/marianumconnect/queries/parent_letters/get_parent_letters.dart';
|
||||
import '../../../../../api/marianumconnect/queries/parent_letters/mark_parent_letter_read.dart';
|
||||
import '../../../../../api/marianumconnect/queries/parent_letters/parent_letter_models.dart';
|
||||
import '../../../infrastructure/repository/repository.dart';
|
||||
import '../bloc/parent_letters_state.dart';
|
||||
|
||||
class ParentLettersRepository extends Repository<ParentLettersState> {
|
||||
Future<ParentLetterListResponse> getLetters({String? before}) {
|
||||
if (DemoMode.active) return Future.value(DemoParentLetters.list());
|
||||
return GetParentLetters().run(before: before);
|
||||
}
|
||||
|
||||
Future<void> markRead(String letterId) {
|
||||
if (DemoMode.active) {
|
||||
DemoParentLetters.markRead(letterId);
|
||||
return Future.value();
|
||||
}
|
||||
return MarkParentLetterRead().run(letterId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user