diff --git a/js/conversation_controller.js b/js/conversation_controller.js index ea93a3437..9f51f9157 100644 --- a/js/conversation_controller.js +++ b/js/conversation_controller.js @@ -87,6 +87,7 @@ ); } + console.log('[vince] Creating conversation with id:', id); diff --git a/js/models/conversations.js b/js/models/conversations.js index b18c15b95..eb05a9b5e 100644 --- a/js/models/conversations.js +++ b/js/models/conversations.js @@ -574,6 +574,9 @@ MessageCollection: Whisper.MessageCollection, } ); + + console.log('[vince][fr] messages:', messages); + if (typeof status === 'string') { // eslint-disable-next-line no-param-reassign status = [status]; @@ -581,6 +584,12 @@ // Get the pending friend requests that match the direction // If no direction is supplied then return all pending friend requests return messages.models.filter(m => { + console.log('[vince][fr] status:', status); + console.log('[vince][fr] m.get(`friendStatus`):', m.get('friendStatus')); + console.log('[vince][fr] m:', m); + + console.log('[vince][fr] status.includes(m.get(`friendStatus`):', status.includes(m.get('friendStatus'))); + if (!status.includes(m.get('friendStatus'))) { return false; } @@ -996,74 +1005,53 @@ }, async respondToAllFriendRequests(options) { - console.log(`[vince][fr] respondToAllFriendRequests: IM BIENG CALLLLEDED`); - console.log(`[vince][fr] respondToAllFriendRequests: IM BIENG CALLLLEDED`); - console.log(`[vince][fr] respondToAllFriendRequests: IM BIENG CALLLLEDED`); - console.log(`[vince][fr] respondToAllFriendRequests: IM BIENG CALLLLEDED`); - console.log(`[vince][fr] respondToAllFriendRequests: IM BIENG CALLLLEDED`); - console.log(`[vince][fr] respondToAllFriendRequests: IM BIENG CALLLLEDED`); - console.log(`[vince][fr] respondToAllFriendRequests: IM BIENG CALLLLEDED`); - console.log(`[vince][fr] respondToAllFriendRequests: IM BIENG CALLLLEDED`); - const { response, status, direction = null } = options; // Ignore if no response supplied if (!response) { return; } - // const primaryConversation = ConversationController.get( - // this.getPrimaryDevicePubKey() - // ); - - // // Should never happen - // if (!primaryConversation) { - // return; - // } - // const pending = await primaryConversation.getFriendRequests( - // direction, - // status - // ); - // await Promise.all( - // pending.map(async request => { - // if (request.hasErrors()) { - // return; - // } - - // request.set({ friendStatus: response }); - // await window.Signal.Data.saveMessage(request.attributes, { - // Message: Whisper.Message, - // }); - // primaryConversation.trigger('updateMessage', request); - // }) - // ); - // Accept FRs from all the user's devices const allDevices = await libloki.storage.getAllDevicePubKeysForPrimaryPubKey( this.getPrimaryDevicePubKey() ); + if (!allDevices.length) { + return; + } + + console.log('[vince] allDevices:', allDevices); const allConversationsWithUser = allDevices.map(d => ConversationController.get(d)); - - console.log(`[vince][fr] allDevices: `, allDevices); console.log('[vince][fr] allConversationsWithUser:', allConversationsWithUser); - + console.log('[vince][fr] direction:', direction); + console.log(`[vince][fr] Status: `, status); + + const pendingRequests = await Promise.all(allConversationsWithUser.reduce(async (requests, conversation) => { + const request = (await conversation.getFriendRequests(direction, status))[0]; + return request ? requests.concat({ conversation, request }) : requests; + }, [])); + console.log('[vince][fr] pendingRequests:', pendingRequests); + await Promise.all( + pendingRequests.map(async friendRequest => { + const { conversation, request } = friendRequest; - if (!allDevices.length) { - return; - } + console.log('[vince][fr] friendRequest:', friendRequest); - const pendingRequests = allConversationsWithUser.map(async c => { - await c.getFriendRequests(direction, status); - }); - - console.log(`[vince][fr] Pending requests: `, pendingRequests); + if (request.hasErrors()) { + return; + } + request.set({ friendStatus: response }); + await window.Signal.Data.saveMessage(request.attributes, { + Message: Whisper.Message, + }); + conversation.trigger('updateMessage', request); + }) + ); - - }, async respondToAllPendingFriendRequests(options) { return this.respondToAllFriendRequests({ diff --git a/js/models/messages.js b/js/models/messages.js index 6d44e2b22..991eef62f 100644 --- a/js/models/messages.js +++ b/js/models/messages.js @@ -436,7 +436,9 @@ }); return; } - this.set({ friendStatus: 'accepted' }); + + // TESTING turning this off + // this.set({ friendStatus: 'accepted' }); console.log('[vince][core] this.attributes:', this.attributes); console.log('[vince][core] This is the conversation youre accepting!! :', conversation);