From 77de0b8384c609729cf7f2f43790b23c90bbc66f Mon Sep 17 00:00:00 2001 From: "audric.sabatier" Date: Sun, 20 Nov 2022 17:56:30 +0100 Subject: [PATCH] ADD : methods to get messages from Firestore TO DO : link to views --- .../lib/controller/controller.dart | 4 ++-- .../message_database_services.dart} | 24 ++++++++++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) rename Sources/dafl_project_flutter/lib/{services/message_database.dart => firebase_services/message_database_services.dart} (55%) diff --git a/Sources/dafl_project_flutter/lib/controller/controller.dart b/Sources/dafl_project_flutter/lib/controller/controller.dart index a3108c8..b575465 100644 --- a/Sources/dafl_project_flutter/lib/controller/controller.dart +++ b/Sources/dafl_project_flutter/lib/controller/controller.dart @@ -1,6 +1,6 @@ import 'dart:convert'; import 'package:dafl_project_flutter/model/message.dart'; -import 'package:dafl_project_flutter/services/message_database.dart'; +import 'package:dafl_project_flutter/firebase_services/message_database_services.dart'; import 'package:flutter/cupertino.dart'; import 'package:http/http.dart' as http; import '../persistence/database_loader.dart'; @@ -15,7 +15,7 @@ class Controller { static Saver saver = DatabaseSaver(); static Loader loader = DatabaseLoader(); static final Searcher _searcher = DatabaseSearcher(); - final MessageDatabase _messageAccess = MessageDatabase(); + final MessageDatabaseServices _messageAccess = MessageDatabaseServices(); late BuildContext navigatorKey; diff --git a/Sources/dafl_project_flutter/lib/services/message_database.dart b/Sources/dafl_project_flutter/lib/firebase_services/message_database_services.dart similarity index 55% rename from Sources/dafl_project_flutter/lib/services/message_database.dart rename to Sources/dafl_project_flutter/lib/firebase_services/message_database_services.dart index 1cc47d2..00955b1 100644 --- a/Sources/dafl_project_flutter/lib/services/message_database.dart +++ b/Sources/dafl_project_flutter/lib/firebase_services/message_database_services.dart @@ -2,7 +2,7 @@ import 'package:dafl_project_flutter/model/message.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; -class MessageDatabase{ +class MessageDatabaseServices{ String _getChatId(String idSender, String idReceiver){ @@ -27,4 +27,26 @@ class MessageDatabase{ }); } + Message _getMessage(DocumentSnapshot> snapshot) { + var data = snapshot.data(); + if (data == null) + throw Exception("no data in database"); + + return Message.fromMap(data); + } + + + List _getAllMessages(QuerySnapshot> snapshot) { + return snapshot.docs.map((doc) { + return _getMessage(doc); + }).toList(); + } + + Stream> getMessage(String chatId) { + return FirebaseFirestore.instance + .collection('messages') + .doc(chatId) + .collection(chatId) + .snapshots().map(_getAllMessages); + } } \ No newline at end of file