chore: add support for meeting events - WPB-26733#4980
Conversation
…te-meetings-entities-WPB-20278
…ate-update-list-meetings-WPB-25676
…te-meetings-entities-WPB-20278
…ate-update-list-meetings-WPB-25676
…te-meetings-entities-WPB-20278
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…te-meetings-entities-WPB-20278
…:wireapp/wire-ios into chore/create-meetings-entities-WPB-20278
…versationsAPIV8.swift Co-authored-by: John Nguyen <28632506+johnxnguyen@users.noreply.github.com>
…rt-meeting-conversation-type-WPB-26589
…ate-update-list-meetings-WPB-25676
…te-meetings-entities-WPB-20278
…ate-update-list-meetings-WPB-25676
…ate-update-list-meetings-WPB-25676
There was a problem hiding this comment.
Pull request overview
This PR adds end-to-end support for new Meeting update-event types across the networking and domain layers, so the client can decode meeting.create, meeting.update, and meeting.delete events and route them into the meeting repository/local storage processing pipeline.
Changes:
- Added
MeetingEvent/Meeting{Create,Update,Delete}Eventmodels and wiredmeeting.*type recognition intoUpdateEventType,UpdateEventDecodingProxy, andUpdateEvent.name. - Implemented meeting event processors in
WireDomainand integrated them intoUpdateEventProcessorandClientSessionComponent. - Added unit tests and JSON fixtures for decoding and domain processing/local store behavior.
Reviewed changes
Copilot reviewed 38 out of 38 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| WireNetwork/Tests/WireNetworkTests/UpdateEvent/Resources/MeetingUpdate.json | Adds a JSON fixture for meeting.update decoding tests. |
| WireNetwork/Tests/WireNetworkTests/UpdateEvent/Resources/MeetingDelete.json | Adds a JSON fixture for meeting.delete decoding tests. |
| WireNetwork/Tests/WireNetworkTests/UpdateEvent/Resources/MeetingCreate.json | Adds a JSON fixture for meeting.create decoding tests. |
| WireNetwork/Tests/WireNetworkTests/UpdateEvent/MeetingEventDecodingTests.swift | Adds unit tests verifying decoding of meeting events into UpdateEvent. |
| WireNetwork/Sources/WireNetwork/Models/UpdateEvent/UpdateEvent+Name.swift | Extends UpdateEvent.name to cover meeting event variants. |
| WireNetwork/Sources/WireNetwork/Models/UpdateEvent/UpdateEvent.swift | Adds case meeting(MeetingEvent) to the public UpdateEvent model. |
| WireNetwork/Sources/WireNetwork/Models/UpdateEvent/MeetingEvent/MeetingUpdateEvent.swift | Introduces the meeting-update event payload model. |
| WireNetwork/Sources/WireNetwork/Models/UpdateEvent/MeetingEvent/MeetingEvent.swift | Introduces MeetingEvent enum for create/delete/update meeting events. |
| WireNetwork/Sources/WireNetwork/Models/UpdateEvent/MeetingEvent/MeetingDeleteEvent.swift | Introduces the meeting-delete event payload model. |
| WireNetwork/Sources/WireNetwork/Models/UpdateEvent/MeetingEvent/MeetingCreateEvent.swift | Introduces the meeting-create event payload model. |
| WireNetwork/Sources/WireNetwork/APIs/Rest/UpdateEventsAPI/UpdateEventType/UpdateEventType.swift | Adds meeting.* classification into update-event type parsing. |
| WireNetwork/Sources/WireNetwork/APIs/Rest/UpdateEventsAPI/UpdateEventType/MeetingEventType.swift | Adds the MeetingEventType enum to map string event types to cases. |
| WireNetwork/Sources/WireNetwork/APIs/Rest/UpdateEventsAPI/UpdateEventType/ConversationEventType.swift | Minor formatting-only change. |
| WireNetwork/Sources/WireNetwork/APIs/Rest/UpdateEventsAPI/Event decoding/UpdateEventDecodingProxy+Meeting.swift | Adds meeting-specific decoding routing into UpdateEventDecodingProxy. |
| WireNetwork/Sources/WireNetwork/APIs/Rest/UpdateEventsAPI/Event decoding/UpdateEventDecodingProxy.swift | Wires .meeting into the main decoding switch. |
| WireNetwork/Sources/WireNetwork/APIs/Rest/UpdateEventsAPI/Event decoding/Meeting/MeetingUpdateEventDecoder.swift | Adds a decoder for meeting update payloads. |
| WireNetwork/Sources/WireNetwork/APIs/Rest/UpdateEventsAPI/Event decoding/Meeting/MeetingEventCodingKeys.swift | Adds coding keys for meeting event payload decoding. |
| WireNetwork/Sources/WireNetwork/APIs/Rest/UpdateEventsAPI/Event decoding/Meeting/MeetingDeleteEventDecoder.swift | Adds a decoder for meeting delete payloads. |
| WireNetwork/Sources/WireNetwork/APIs/Rest/UpdateEventsAPI/Event decoding/Meeting/MeetingCreateEventDecoder.swift | Adds a decoder for meeting create payloads. |
| WireDomain/Tests/WireDomainTests/LocalStores/MeetingLocalStoreTests.swift | Adds persistence/local store tests for meeting storage and deletion behavior. |
| WireDomain/Tests/WireDomainTests/Event Processing/MeetingEventProcessor/MeetingUpdateEventProcessorTests.swift | Adds unit tests for meeting-update event processing. |
| WireDomain/Tests/WireDomainTests/Event Processing/MeetingEventProcessor/MeetingDeleteEventProcessorTests.swift | Adds unit tests for meeting-delete event processing. |
| WireDomain/Tests/WireDomainTests/Event Processing/MeetingEventProcessor/MeetingCreateEventProcessorTests.swift | Adds unit tests for meeting-create event processing. |
| WireDomain/Sources/WireUpdateEventCoding/Models/StorableUpdateEvent.swift | Extends storable update-event model to include meeting events. |
| WireDomain/Sources/WireUpdateEventCoding/Models/MeetingEvent/StorableMeetingUpdateEvent.swift | Adds storable wrapper for meeting-update events. |
| WireDomain/Sources/WireUpdateEventCoding/Models/MeetingEvent/StorableMeetingEvent.swift | Adds storable wrapper enum for meeting events. |
| WireDomain/Sources/WireUpdateEventCoding/Models/MeetingEvent/StorableMeetingDeleteEvent.swift | Adds storable wrapper for meeting-delete events. |
| WireDomain/Sources/WireUpdateEventCoding/Models/MeetingEvent/StorableMeetingCreateEvent.swift | Adds storable wrapper for meeting-create events. |
| WireDomain/Sources/WireDomain/Event Processing/UpdateEventProcessor.swift | Routes meeting events through the domain-level update-event processor. |
| WireDomain/Sources/WireDomain/Event Processing/MeetingEventProcessor/Protocols/MeetingUpdateEventProcessorProtocol.swift | Adds protocol for meeting-update event processing. |
| WireDomain/Sources/WireDomain/Event Processing/MeetingEventProcessor/Protocols/MeetingEventProcessorProtocol.swift | Adds protocol for meeting-event processing dispatch. |
| WireDomain/Sources/WireDomain/Event Processing/MeetingEventProcessor/Protocols/MeetingDeleteEventProcessorProtocol.swift | Adds protocol for meeting-delete event processing. |
| WireDomain/Sources/WireDomain/Event Processing/MeetingEventProcessor/Protocols/MeetingCreateEventProcessorProtocol.swift | Adds protocol for meeting-create event processing. |
| WireDomain/Sources/WireDomain/Event Processing/MeetingEventProcessor/MeetingUpdateEventProcessor.swift | Implements meeting-update processing via repository pull. |
| WireDomain/Sources/WireDomain/Event Processing/MeetingEventProcessor/MeetingEventProcessor.swift | Implements dispatch over MeetingEvent to create/delete/update processors. |
| WireDomain/Sources/WireDomain/Event Processing/MeetingEventProcessor/MeetingDeleteEventProcessor.swift | Implements meeting-delete processing via repository local delete. |
| WireDomain/Sources/WireDomain/Event Processing/MeetingEventProcessor/MeetingCreateEventProcessor.swift | Implements meeting-create processing via repository pull. |
| WireDomain/Sources/WireDomain/Components/ClientSessionComponent.swift | Wires meeting processors into the session’s event-processing graph. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
…3-533582018a2ec56ab839b1174ea084f617ec5d3f' into feat/support-meeting-events-WPB-26733
…rt-meeting-events-WPB-26733
…rt-meeting-events-WPB-26733
This reverts commit c76b59d.
Thanks for the hint. User facing notifications will be added as part of a separate task. |
| // Meeting conversations arrive as a dedicated event type but carry | ||
| // the same payload as a regular conversation creation, with the | ||
| // meeting group type, so both decode into the same event. | ||
| case .create, .createMeeting: |
There was a problem hiding this comment.
question: should we consider the API version for createMeeting event? "meeting" type conversation should be available only from the API v16
There was a problem hiding this comment.
For events we don't have versioning, if I'm not mistaken.
There was a problem hiding this comment.
That is correct, no api versions unfortunately. Which is also the reason why we have a separate createMeeting event because it will be ignored by earlier clients that don't understand how to parse it.
johnxnguyen
left a comment
There was a problem hiding this comment.
Looks good, nice work
| // Meeting conversations arrive as a dedicated event type but carry | ||
| // the same payload as a regular conversation creation, with the | ||
| // meeting group type, so both decode into the same event. | ||
| case .create, .createMeeting: |
There was a problem hiding this comment.
That is correct, no api versions unfortunately. Which is also the reason why we have a separate createMeeting event because it will be ignored by earlier clients that don't understand how to parse it.



Issue
This PR adds code for decoding
meeting.create,meeting.update,meeting.deleteandconversation.create-meetingevents.Testing
Unit tests are added, but these changes can only be tested together with the meeting feature as a whole.
Checklist
[WPB-XXX].UI accessibility checklist
If your PR includes UI changes, please utilize this checklist: