Page MenuHomePhabricator

[lib] Propagate thread infos to the notifs generating code
Needs ReviewPublic

Authored by tomek on Thu, Oct 31, 8:20 AM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Nov 1, 2:15 PM
Unknown Object (File)
Fri, Nov 1, 2:15 PM
Unknown Object (File)
Fri, Nov 1, 2:14 PM
Unknown Object (File)
Fri, Nov 1, 2:14 PM
Subscribers

Details

Reviewers
kamil
angelika
Summary

When a user performs an action, we generate an operation that is used to update Redux, send DM messages, and send the notifs. Updating Redux happens first. Generating notifs requires access to the thread. These cause a problem when leaving a thread, which might result in the thread being deleted from the store, making us unable to send the notifs.

Notif sending code needs threads for two main reasons: to determine the recipients and to create a notification text.

The solution is to pass a thread info inside notifs creation data so that we can use it instead of selecting from the store.

https://linear.app/comm/issue/ENG-9823/fix-sending-notifs-about-leaving-a-thick-thread

Depends on D13845

Test Plan

Created a thick thread with three users and verified that added users receive a thread, a message, and a notif about thread creation.
Left this thread as one of the users and checked that an exception isn't thrown. The notif wasn't generated because leaveThreadMessageSpec doesn't implement generatesNotifs function.
Added the user to the thread, which also doesn't generate notif for the same reason. Sending a text message to that thread generated the notifs.

Diff Detail

Repository
rCOMM Comm
Lint
No Lint Coverage
Unit
No Test Coverage