cGPBNakruEarPsLo method
Future<void>
cGPBNakruEarPsLo({
- required YIMEnum_ConversationType conversationType,
- required String conversationID,
- required List<
String> messageIDs,
override
Implementation
@override
Future<void> cGPBNakruEarPsLo({
required YIMEnum_ConversationType conversationType,
required String conversationID,
required List<String> messageIDs,
}) async {
if (!OvtmToJxJungsSYZ.csuUedvgDStbzLNY.PscxCSwHobBJanUn()) return;
Filter? filter;
switch (conversationType) {
case YIMEnum_ConversationType.P2P:
filter = Filter.and([
Filter.inList("id", messageIDs),
Filter.or([
Filter.and([Filter.equals("from", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("to", conversationID)]),
Filter.and([Filter.equals("to", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("from", conversationID)]),
]),
Filter.equals("conversationType", conversationType.rawValue),
]);
break;
case YIMEnum_ConversationType.Team:
filter = Filter.and([
Filter.inList("id", messageIDs),
Filter.equals("to", conversationID),
Filter.equals("conversationType", conversationType.rawValue),
]);
break;
default:
break;
}
final isSuccess_delete = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.tKAbXalebZFRuOaW(
_YIMTableName.Message,
finder: Finder(
filter: filter,
),
);
if (!isSuccess_delete) return;
switch (conversationType) {
case YIMEnum_ConversationType.P2P:
filter = Filter.and([
Filter.or([
Filter.and([Filter.equals("from", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("to", conversationID)]),
Filter.and([Filter.equals("to", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("from", conversationID)]),
]),
Filter.equals("conversationType", conversationType.rawValue),
]);
break;
case YIMEnum_ConversationType.Team:
filter = Filter.and([
Filter.equals("to", conversationID),
Filter.equals("conversationType", conversationType.rawValue),
]);
break;
default:
break;
}
final count = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.jkvZnZIvvDSnHWwS(
_YIMTableName.Message,
filter: filter,
);
if (count == null) return;
if (count > 0) {
final isSuccess_updateLastMessage = await OvtmToJxJungsSYZ.LlIozQNrAdyRMeRu.JomjSGPzMROqBXcU(conversationType, conversationID, unRead: _YIMEnum_ConversatypeUnRead.Zero);
if (!isSuccess_updateLastMessage) return;
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.qHtpCvFDdZkdPuJV?.call();
});
Filter? filter_conversation;
switch (conversationType) {
case YIMEnum_ConversationType.P2P:
filter_conversation = Filter.and([
Filter.or([
Filter.and([Filter.equals("lastMessage.from", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("lastMessage.to", conversationID)]),
Filter.and([Filter.equals("lastMessage.to", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("lastMessage.from", conversationID)]),
]),
Filter.equals("lastMessage.conversationType", conversationType.rawValue),
]);
break;
case YIMEnum_ConversationType.Team:
filter_conversation = Filter.and([
Filter.equals("lastMessage.to", conversationID),
Filter.equals("lastMessage.conversationType", conversationType.rawValue),
]);
break;
}
final needUpdateConversations = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.GblXLUqWqaAxkFQq<_YIMTable_Conversation>(
_YIMTableName.Conversation,
onModel: (map) => _YIMTable_Conversation.fromJson(map),
finder: Finder(filter: filter_conversation),
);
if (needUpdateConversations == null) {
return;
}
ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.pNEsHvSGgGaVaPdm?.call(needUpdateConversations.map((e) => YIMConversation(conversation: e)).toList());
});
} else {
await OvtmToJxJungsSYZ.LlIozQNrAdyRMeRu.tKAbXalebZFRuOaW(conversationType: conversationType, conversationID: conversationID);
}
}