Moved all functions to chatfunction
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user