From 671874851ff75900c1cd437696aa6c658a6ad907 Mon Sep 17 00:00:00 2001 From: Agboola Onasanya Date: Thu, 27 Mar 2025 01:31:42 +0000 Subject: [PATCH] Moved all functions to chatfunction --- functions/chatapp-functions/lib/main.dart | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/functions/chatapp-functions/lib/main.dart b/functions/chatapp-functions/lib/main.dart index a5953fc..9babc83 100644 --- a/functions/chatapp-functions/lib/main.dart +++ b/functions/chatapp-functions/lib/main.dart @@ -39,7 +39,12 @@ Future main(final _context) async { createdAt = DateTime.parse(_context.req.bodyJson['\$createdAt']); updatedAt = DateTime.parse(_context.req.bodyJson['\$updatedAt']); - _context.log(_messages); + // _context.log(_messages); + + Map allMessages = {}; + for (var pp = 0; pp < _messages.length; pp++) { + allMessages.addAll(json.decode(_messages[pp])); + } if (createdAt.isAtSameMomentAs(updatedAt)) { // @@ -57,7 +62,7 @@ Future main(final _context) async { } else { // for (String _member in _members) { - await updateConversation(_context, _member, _messages); + await updateConversation(_context, _member, allMessages[_member]); } } } @@ -74,6 +79,7 @@ dynamic createConversation(final _context, String _member, var _members) async { List _chatIdMap = []; List _detailMap = []; + List _lastModifiedMap = []; var _userDetail = await _database.getDocument( databaseId: _databaseId, @@ -99,6 +105,7 @@ dynamic createConversation(final _context, String _member, var _members) async { if (_conversationDetail != null) { _chatIdMap = _conversationDetail.data['chatId']; _detailMap = _conversationDetail.data['details']; + _lastModifiedMap = _conversationDetail.data['lastModified']; await _database.deleteDocument( databaseId: _databaseId, @@ -112,10 +119,12 @@ dynamic createConversation(final _context, String _member, var _members) async { _chatIdMap.add(_documentId); _detailMap.add(_data); + _lastModifiedMap.add(DateTime.now().toUtc().toIso8601String()); Map _conversationMap = { "chatId": _chatIdMap, - "details": _detailMap + "details": _detailMap, + "lastModified": _lastModifiedMap }; await _database.createDocument( @@ -137,10 +146,11 @@ dynamic createConversation(final _context, String _member, var _members) async { // dynamic updateConversation(var _context, var _member, var _messages) async { // - Map _message = json.decode(_messages[_messages.length - 1]); + var _message = _messages[_messages.length - 1]; if (_message.isNotEmpty) { List _chatIdMap = []; List _detailMap = []; + List _lastModifiedMap = []; var _conversationDetail; try { @@ -158,9 +168,11 @@ dynamic updateConversation(var _context, var _member, var _messages) async { if (_conversationDetail != null) { _chatIdMap = _conversationDetail.data['chatId']; _detailMap = _conversationDetail.data['details']; + _lastModifiedMap = _conversationDetail.data['lastModified']; var _index = _chatIdMap.indexOf(_documentId); Map _detail = json.decode(_detailMap[_index]); + _lastModifiedMap[_index] = DateTime.now().toUtc().toIso8601String(); _detail['unseenCount'] += 1; _detail['lastMessage'] = _message['message']; @@ -172,7 +184,8 @@ dynamic updateConversation(var _context, var _member, var _messages) async { Map _conversationMap = { "chatId": _chatIdMap, - "details": _detailMap + "details": _detailMap, + "lastModified": _lastModifiedMap }; await _database.updateDocument(