Background
Currently, reading lists are read-only, making them ineffective. To improve the feature, the intern will implement functionality to allow users to save and remove pages from their reading lists via the API Sandbox.
User story
As a user, I want to be able to save and remove pages from my reading list so that I can manage my reading experience effectively.
Requirements
- Read the API documentation on Reading Lists:
- Implement API calls to:
- Save a page to a reading list.
- Remove a page from a reading list.
- Test and confirm that saved pages appear on /wiki/Special:ReadingLists/Username.
- Ensure API requests return expected responses and handle errors gracefully.
- Document the process and challenges faced.
Note that for now, while T385755 is being worked out, the temporary placement of this button should use the existing code, placing it in the More menu in minerva and the Tools menu in vector
Additionally, since the existing APIs are not designed to special case the default list, this functionality will need to query over all lists until it finds the default list when adding and deleting. The performance impacts of this can be ignored for now
BDD
Feature: Enable Save and Remove functionality for Reading Lists using the API Sandbox
Scenario: Save a page to the default reading list using the API
Given I use the API Sandbox to add a page to my reading list
When I check Special:ReadingLists/Username
Then the page should appear in the default reading list
Scenario: Remove a page from the default reading list using the API
Given I have a page saved in my reading list via the API
When I use the API Sandbox to remove that page
Then the page should no longer appear on Special:ReadingLists/UsernameTest Steps
Test Case 1: Verify saving a page to the default reading list using the API
- Open the API Sandbox and configure a request to add a page to your reading list.
- Ensure the request is executed and the API returns a success response.
- Visit /wiki/Special:ReadingLists/YourUsername in an incognito window.
- AC1: Confirm that the saved page appears in the default reading list.
⸻
Test Case 2: Verify removing a page from the default reading list using the API
- Open the API Sandbox and configure a request to remove the previously saved page from your reading list. Adjust the parameters accordingly.
- Execute the request and ensure the API returns a success response.
- Visit /wiki/Special:ReadingLists/YourUsername in an incognito window.
- AC2: Confirm that the page is no longer listed in the default reading list.
Design
No UI design changes needed.
Acceptance criteria
- Users can successfully save or remove pages to their default reading list via a control on all article pages when the beta feature is enabled
- Once a page is added it appears on the "Saved" list in the reading list link from the user menu dropdown
- When the beta feature for reading list is disabled, no bookmark link is shown
- No PHP or API changes are made (since PHP code is generally maintained by the Content Transform team)
- API responses are handled correctly, including errors
- Vue.js or Codex should not be loaded on page load.
Communication criteria
No formal announcement needed.
Discuss findings or issues in the team Slack channel or during check-ins.
Rollback plan
If issues arise, revert changes and disable new API calls while troubleshooting.
QA Results - Beta
| AC | Status | Details |
|---|---|---|
| 1 | ✅ | T386669#10702056 |
| 2 | ✅ | T386669#10702056 |
QA Results - Prod
| AC | Status | Details |
|---|---|---|
| 1 | ✅ | T386669#10750804 |
| 2 | ✅ | T386669#10750804 |















