Once T317705, T331884, and T320434 are done, we want to write the code for actually calling the P&E dashboard API, although this won't be available to users just yet.
Note: a list of endpoints and their specs is available in the task description of T302584.
Acceptance criteria
- Write code that implements T331884 and T320434 for the specific case of the P&E dashboard. The validation side should be implemented by passing the dry_run parameter to the API endpoints, and the actual actions should be performed by calling the same endpoints without the dry_run parameter. The following scenarios should be covered:
- Registration enabled -> sync event
- Registration updated -> unsync previous course, sync the new one
- Registration disabled -> unsync event
- Changes to the list of participants (add self, remove self, remove many, change visibility) -> sync participants
- Add translations of the possible error messages listed in the task description of T302584.
- Make sure that API requests use the standard proxy ($wgCopyUploadProxy) in production
- If organizer enables registration without tracking tools, then someone registers for the event, and then the organizer adds a tracking tool, then the list of participants should also be synced immediately with the tool
Out of scope
- User interface and API endpoints should not expose anything about tracking tools yet
Key points from meeting with Sage
- We can use either a batched job or "live" updates (via DeferredUpdate), whatever works best for us.
- Watch out for race conditions when sending updates
- The full list of participants may be potentially very long; make sure this is not a problem.
- Private registrants should NOT be synced with the dashboard; we will create another task about making sure that this is explained transparently in the interface.