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']);
|
createdAt = DateTime.parse(_context.req.bodyJson['\$createdAt']);
|
||||||
updatedAt = DateTime.parse(_context.req.bodyJson['\$updatedAt']);
|
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)) {
|
if (createdAt.isAtSameMomentAs(updatedAt)) {
|
||||||
//
|
//
|
||||||
@@ -57,7 +62,7 @@ Future<dynamic> main(final _context) async {
|
|||||||
} else {
|
} else {
|
||||||
//
|
//
|
||||||
for (String _member in _members) {
|
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> _chatIdMap = [];
|
||||||
List<dynamic> _detailMap = [];
|
List<dynamic> _detailMap = [];
|
||||||
|
List<dynamic> _lastModifiedMap = [];
|
||||||
|
|
||||||
var _userDetail = await _database.getDocument(
|
var _userDetail = await _database.getDocument(
|
||||||
databaseId: _databaseId,
|
databaseId: _databaseId,
|
||||||
@@ -99,6 +105,7 @@ dynamic createConversation(final _context, String _member, var _members) async {
|
|||||||
if (_conversationDetail != null) {
|
if (_conversationDetail != null) {
|
||||||
_chatIdMap = _conversationDetail.data['chatId'];
|
_chatIdMap = _conversationDetail.data['chatId'];
|
||||||
_detailMap = _conversationDetail.data['details'];
|
_detailMap = _conversationDetail.data['details'];
|
||||||
|
_lastModifiedMap = _conversationDetail.data['lastModified'];
|
||||||
|
|
||||||
await _database.deleteDocument(
|
await _database.deleteDocument(
|
||||||
databaseId: _databaseId,
|
databaseId: _databaseId,
|
||||||
@@ -112,10 +119,12 @@ dynamic createConversation(final _context, String _member, var _members) async {
|
|||||||
|
|
||||||
_chatIdMap.add(_documentId);
|
_chatIdMap.add(_documentId);
|
||||||
_detailMap.add(_data);
|
_detailMap.add(_data);
|
||||||
|
_lastModifiedMap.add(DateTime.now().toUtc().toIso8601String());
|
||||||
|
|
||||||
Map<String, dynamic> _conversationMap = {
|
Map<String, dynamic> _conversationMap = {
|
||||||
"chatId": _chatIdMap,
|
"chatId": _chatIdMap,
|
||||||
"details": _detailMap
|
"details": _detailMap,
|
||||||
|
"lastModified": _lastModifiedMap
|
||||||
};
|
};
|
||||||
|
|
||||||
await _database.createDocument(
|
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 {
|
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) {
|
if (_message.isNotEmpty) {
|
||||||
List<dynamic> _chatIdMap = [];
|
List<dynamic> _chatIdMap = [];
|
||||||
List<dynamic> _detailMap = [];
|
List<dynamic> _detailMap = [];
|
||||||
|
List<dynamic> _lastModifiedMap = [];
|
||||||
|
|
||||||
var _conversationDetail;
|
var _conversationDetail;
|
||||||
try {
|
try {
|
||||||
@@ -158,9 +168,11 @@ dynamic updateConversation(var _context, var _member, var _messages) async {
|
|||||||
if (_conversationDetail != null) {
|
if (_conversationDetail != null) {
|
||||||
_chatIdMap = _conversationDetail.data['chatId'];
|
_chatIdMap = _conversationDetail.data['chatId'];
|
||||||
_detailMap = _conversationDetail.data['details'];
|
_detailMap = _conversationDetail.data['details'];
|
||||||
|
_lastModifiedMap = _conversationDetail.data['lastModified'];
|
||||||
|
|
||||||
var _index = _chatIdMap.indexOf(_documentId);
|
var _index = _chatIdMap.indexOf(_documentId);
|
||||||
Map _detail = json.decode(_detailMap[_index]);
|
Map _detail = json.decode(_detailMap[_index]);
|
||||||
|
_lastModifiedMap[_index] = DateTime.now().toUtc().toIso8601String();
|
||||||
|
|
||||||
_detail['unseenCount'] += 1;
|
_detail['unseenCount'] += 1;
|
||||||
_detail['lastMessage'] = _message['message'];
|
_detail['lastMessage'] = _message['message'];
|
||||||
@@ -172,7 +184,8 @@ dynamic updateConversation(var _context, var _member, var _messages) async {
|
|||||||
|
|
||||||
Map<String, dynamic> _conversationMap = {
|
Map<String, dynamic> _conversationMap = {
|
||||||
"chatId": _chatIdMap,
|
"chatId": _chatIdMap,
|
||||||
"details": _detailMap
|
"details": _detailMap,
|
||||||
|
"lastModified": _lastModifiedMap
|
||||||
};
|
};
|
||||||
|
|
||||||
await _database.updateDocument(
|
await _database.updateDocument(
|
||||||
|
|||||||
Reference in New Issue
Block a user