Page MenuHomePhabricator

Add start/end dates to communityrequests-wishes API
Closed, ResolvedPublicFeature

Assigned To
Authored By
Nardog
Oct 23 2025, 1:05 PM
Referenced Files
F71485444: 2026-01-09_10-49-02.webm
Fri, Jan 9, 11:23 PM
F71485439: 2026-01-09_10-35-06.mp4
Fri, Jan 9, 11:23 PM
F71485435: 2026-01-09_10-20-48.mp4
Fri, Jan 9, 11:23 PM
F71485434: 2026-01-09_10-13-13.webm
Fri, Jan 9, 11:23 PM
F71485432: 2026-01-09_10-18-36.webm
Fri, Jan 9, 11:23 PM
F71485422: 2026-01-09_10-17-19.mp4
Fri, Jan 9, 11:23 PM

Description

As someone who wants to improve the experience of the Community Wishlist on wiki, I want to be able to query information about only wishes older or newer than a certain date (like xxstart/xxend in recentchanges, usercontribs, etc.) so my scripts won't have to query and comb through a whole list of wishes just to get information about newly added/updated wishes etc.


Derived Requirements

  1. The CommunityRequests wishes API must support optional start date and end date query parameters to filter wishes based on creation or last update timestamp.
  2. When a start date parameter is provided, the API must return only wishes created or updated on or after the specified date.
  3. When an end date parameter is provided, the API must return only wishes created or updated on or before the specified date.
  4. When both start date and end date parameters are provided, the API must return only wishes whose creation or update timestamps fall within the specified date range.
  5. Date filtering must follow the same semantics and validation rules as existing MediaWiki APIs (e.x. crwtags).
  6. When no start or end date parameters are provided, the API behavior must remain unchanged.
  7. Invalid or malformed date parameters must result in a clear and consistent API error response.
  8. Date filtering must apply consistently across paginated API responses.
Test Steps

Test Case 1: Query Wishes Using Start Date Parameter

Preconditions

  • The CommunityRequests wishes API endpoint is accessible.
  • At least one wish exists both before and after the selected start date.
  1. Send a CommunityRequests wishes API request with a valid start date parameter.
  2. Review the returned list of wishes.
  3. Inspect the timestamps of each returned wish.
  4. ✅❓❌⬜ AC1: Verify that only wishes created or updated on or after the specified start date are returned and that no older wishes are included.

Test Case 2: Query Wishes Using End Date Parameter

Preconditions

  • The CommunityRequests wishes API endpoint is accessible.
  • At least one wish exists both before and after the selected end date.
  1. Send a CommunityRequests wishes API request with a valid end date parameter.
  2. Review the returned list of wishes.
  3. Inspect the timestamps of each returned wish.
  4. ✅❓❌⬜ AC2: Verify that only wishes created or updated on or before the specified end date are returned and that no newer wishes are included.

Test Case 3: Query Wishes Using Start and End Date Range

Preconditions

  • The CommunityRequests wishes API endpoint is accessible.
  • Wishes exist both inside and outside the selected date range.
  1. Send a CommunityRequests wishes API request with both start and end date parameters.
  2. Review the returned list of wishes.
  3. Inspect the timestamps of each returned wish.
  4. ✅❓❌⬜ AC3: Verify that all returned wishes fall within the specified date range and that wishes outside the range are excluded.

Test Case 4: API Behavior Without Date Parameters

Preconditions

  • The CommunityRequests wishes API endpoint is accessible.
  1. Send a CommunityRequests wishes API request without start or end date parameters.
  2. Review the returned list of wishes.
  3. Compare the response with the current baseline behavior.
  4. ✅❓❌⬜ AC4: Verify that the API response matches the existing behavior with no date-based filtering applied.

Test Case 5: Invalid Date Parameter Handling

Preconditions

  • The CommunityRequests wishes API endpoint is accessible.
  1. Send a CommunityRequests wishes API request with an invalid or malformed start or end date value.
  2. Observe the API response.
  3. ✅❓❌⬜ AC5: Verify that the API returns no results

Test Case 6: Date Filtering with Other Filters

Preconditions

  1. Send a CommunityRequests wishes API request with a valid start and/or end date and pagination parameters.

2.Add another filter (ex. crwtags)

  1. ✅❓❌⬜ AC6: Verify that the API returns clear and consistent results

QA Results - Meta Beta

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
MusikAnimal raised the priority of this task from Low to Medium.Nov 14 2025, 8:49 PM
HMonroy changed the task status from Open to In Progress.Dec 4 2025, 5:50 PM
HMonroy changed the task status from In Progress to Open.Dec 8 2025, 5:11 PM
HMonroy removed HMonroy as the assignee of this task.
HMonroy subscribed.

Change #1216833 had a related patch set uploaded (by Dmaza; author: Dmaza):

[mediawiki/extensions/CommunityRequests@master] Add created start/end date filters to API

https://gerrit.wikimedia.org/r/1216833

dmaza changed the task status from Open to In Progress.Dec 9 2025, 8:40 PM

Change #1216833 merged by jenkins-bot:

[mediawiki/extensions/CommunityRequests@master] Add created start/end date filters to API

https://gerrit.wikimedia.org/r/1216833

HMonroy changed the task status from In Progress to Open.Dec 11 2025, 5:06 PM
HMonroy moved this task from Feedback and Review to QA on the Community-Tech (Sea Lion Squad) board.

@dmaza Verify Add start/end dates to communityrequests-wishes API, as seen in the videos below. I will mark this as Resolved. Thanks for all your work!

Test Result - Meta Beta

Status: ✅ PASS
Environment: Meta Beta
OS: macOS Tahoe 26.1
Browser: Chrome 143
Device: MBA
Emulated Device: NA

Test Artifact(s):

https://meta.wikimedia.beta.wmcloud.org/wiki/Community_Wishlist/Wishes
https://meta.wikimedia.beta.wmcloud.org/wiki/Special:ApiSandbox#action=query&format=json&prop=&list=communityrequests-wishes&formatversion=2&crwtags=categories

Test Steps

Test Case 1: Query Wishes Using Start Date Parameter

Preconditions

  • The CommunityRequests wishes API endpoint is accessible.
  • At least one wish exists both before and after the selected start date.
  1. Send a CommunityRequests wishes API request with a valid start date parameter.
  2. Review the returned list of wishes.
  3. Inspect the timestamps of each returned wish.
  4. AC1: Verify that only wishes created or updated on or after the specified start date are returned and that no older wishes are included.

Test Case 2: Query Wishes Using End Date Parameter

Preconditions

  • The CommunityRequests wishes API endpoint is accessible.
  • At least one wish exists both before and after the selected end date.
  1. Send a CommunityRequests wishes API request with a valid end date parameter.
  2. Review the returned list of wishes.
  3. Inspect the timestamps of each returned wish.
  4. AC2: Verify that only wishes created or updated on or before the specified end date are returned and that no newer wishes are included.

Test Case 3: Query Wishes Using Start and End Date Range

Preconditions

  • The CommunityRequests wishes API endpoint is accessible.
  • Wishes exist both inside and outside the selected date range.
  1. Send a CommunityRequests wishes API request with both start and end date parameters.
  2. Review the returned list of wishes.
  3. Inspect the timestamps of each returned wish.
  4. AC3: Verify that all returned wishes fall within the specified date range and that wishes outside the range are excluded.

Test Case 4: API Behavior Without Date Parameters

Preconditions

  • The CommunityRequests wishes API endpoint is accessible.
  1. Send a CommunityRequests wishes API request without start or end date parameters.
  2. Review the returned list of wishes.
  3. Compare the response with the current baseline behavior.
  4. AC4: Verify that the API response matches the existing behavior with no date-based filtering applied.

Test Case 5: Invalid Date Parameter Handling

Preconditions

  • The CommunityRequests wishes API endpoint is accessible.
  1. Send a CommunityRequests wishes API request with an invalid or malformed start or end date value.
  2. Observe the API response.
  3. AC5: Verify that the API returns no results

Test Case 6: Date Filtering with Other Filters

Preconditions

  1. Send a CommunityRequests wishes API request with a valid start and/or end date and pagination parameters.

2.Add another filter (ex. crwtags)

  1. AC6: Verify that the API returns clear and consistent results

GMikesell-WMF updated the task description. (Show Details)
GMikesell-WMF updated the task description. (Show Details)