Moved all functions to chatfunction

This commit is contained in:
2025-03-27 01:31:42 +00:00
parent 24f056f4cd
commit 671874851f
+18 -5
View File
@@ -39,7 +39,12 @@ Future<dynamic> 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<dynamic> 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<dynamic> _chatIdMap = [];
List<dynamic> _detailMap = [];
List<dynamic> _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<String, dynamic> _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<dynamic> _chatIdMap = [];
List<dynamic> _detailMap = [];
List<dynamic> _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<String, dynamic> _conversationMap = {
"chatId": _chatIdMap,
"details": _detailMap
"details": _detailMap,
"lastModified": _lastModifiedMap
};
await _database.updateDocument(