Updated expire job to use friendRequestStatus states.

pull/19/head
Mikunj 7 years ago
parent 740291cceb
commit 74867dc525

@ -729,13 +729,13 @@ ConversationColorName const kConversationColorName_Default = ConversationColorNa
messageToKeep = message; messageToKeep = message;
} }
// We want to remove any old incoming friend request messages // We want to remove any old incoming friend request messages which are pending
if (interactionType == OWSInteractionType_IncomingMessage) { if (interactionType == OWSInteractionType_IncomingMessage) {
removeMessage = message.isFriendRequest; removeMessage = message.friendRequestStatus == TSMessageFriendRequestStatusPending;
} else { } else {
// Or if we're sending then remove any failed friend request messages // Or if we're sending then remove any failed friend request messages
TSOutgoingMessage *outgoingMessage = (TSOutgoingMessage *)message; TSOutgoingMessage *outgoingMessage = (TSOutgoingMessage *)message;
removeMessage = outgoingMessage.messageState == TSOutgoingMessageStateFailed; removeMessage = outgoingMessage.isFriendRequest && outgoingMessage.messageState == TSOutgoingMessageStateFailed;
} }
if (removeMessage) { if (removeMessage) {

@ -130,7 +130,7 @@ public final class FriendRequestExpireJob : NSObject {
} }
// Check that we only expire sent friend requests // Check that we only expire sent friend requests
guard message is TSOutgoingMessage && message.isFriendRequest else { guard message is TSOutgoingMessage && message.friendRequestStatus == .pending else {
// Set message to not expire, so our other logic works correctly // Set message to not expire, so our other logic works correctly
message.saveFriendRequestExpires(at: 0, with: transaction) message.saveFriendRequestExpires(at: 0, with: transaction)
return; return;

@ -36,7 +36,7 @@ public class FriendRequestExpireMessageFinder : NSObject {
let now = NSDate.ows_millisecondTimeStamp() let now = NSDate.ows_millisecondTimeStamp()
let query = "WHERE \(FriendRequestExpireMessageFinder.friendRequestExpireColumn) > 0 AND \(FriendRequestExpireMessageFinder.friendRequestExpireColumn) <= \(now)" let query = "WHERE \(FriendRequestExpireMessageFinder.friendRequestExpireColumn) > 0 AND \(FriendRequestExpireMessageFinder.friendRequestExpireColumn) <= \(now)"
// When (expireAt == 0) then the friend request SHOULD NOT expire // When (friendRequestExpiresAt == 0) then the friend request SHOULD NOT be set to expired
let dbQuery = YapDatabaseQuery(string: query, parameters: []) let dbQuery = YapDatabaseQuery(string: query, parameters: [])
if let ext = transaction.ext(FriendRequestExpireMessageFinder.friendRequestExpireIndex) as? YapDatabaseSecondaryIndexTransaction { if let ext = transaction.ext(FriendRequestExpireMessageFinder.friendRequestExpireIndex) as? YapDatabaseSecondaryIndexTransaction {
ext.enumerateKeys(matching: dbQuery) { (_, key, _) in ext.enumerateKeys(matching: dbQuery) { (_, key, _) in
@ -60,10 +60,9 @@ public extension FriendRequestExpireMessageFinder {
let handler = YapDatabaseSecondaryIndexHandler.withObjectBlock { (transaction, dict, collection, key, object) in let handler = YapDatabaseSecondaryIndexHandler.withObjectBlock { (transaction, dict, collection, key, object) in
guard let message = object as? TSMessage else { return } guard let message = object as? TSMessage else { return }
// Only select sent friend requests // Only select sent friend requests which are pending
guard message is TSOutgoingMessage && message.isFriendRequest else { return } guard message is TSOutgoingMessage && message.friendRequestStatus == .pending else { return }
// TODO: Replace this with unlock timer
dict[friendRequestExpireColumn] = message.friendRequestExpiresAt dict[friendRequestExpireColumn] = message.friendRequestExpiresAt
} }

Loading…
Cancel
Save