Split from T400414.
Add three new parameters to the action=query&list=communityrequests-wishes API (all accept the wikitext value forms of the wish attributes):
- Tags: crwtags, one or more tags.
- Statuses: crwstatuses, one or more status names.
- Focus Areas: crwfocusareas, one or more FAx Focus Area IDs.
Developer notes
- In ApiQueryWishes, add new entries to getAllowedParams() for the new parameters.
- PARAM_ISMULTI should be true
- Set the PARAM_TYPE to be the allowed wikitext values as fetched from configuration, like array_keys( $this->config->getNavigationTags() )
- In AbstractWishlistStore::getAll(), make the $filters param work
- Could maybe accept the same signature as SelectQueryBuilder::where() and use $select->andWhere( $filters );; see incomplete attempt in r1185177 (?)
Acceptance criteria
- Querying ApiQueryWishes with the tags param should return the tags of wishes, in their API-compatible "wikitext value" format (i.e. botsgadgets, mobileweb)
__
Derived Requirement
Enhance the action=query&list=communityrequests-wishes API to support filtering of wish results by tags, statuses, and focus areas. The API should accept the following new parameters:
- crwtags: One or more tag identifiers (wikitext value format, e.g., botsgadgets, mobileweb)
- crwstatuses: One or more status names
- crwfocusareas: One or more Focus Area IDs (e.g., FA1, FA2)
Each parameter must allow multiple values (PARAM_ISMULTI set to true), with PARAM_TYPE restricted to valid configuration-defined values. When these parameters are used in a query, the API must correctly return filtered wish results that match the specified criteria, ensuring that returned data reflects only relevant wishes based on the filters applied.
Test Steps
Test Case 1: Verify filtering by tags
- Send an API request to:
` action=query&list=communityrequests-wishes&crwtags=botsgadgets ` - ✅❓❌⬜ AC1: Confirm that only wishes tagged with botsgadgets are returned.
Test Case 2: Verify filtering by multiple tags
- Send an API request to:
` action=query&list=communityrequests-wishes&crwtags=botsgadgets|mobileweb ` - ✅❓❌⬜ AC2: Confirm that all returned wishes include at least one of the specified tags (botsgadgets, mobileweb).
Test Case 3: Verify filtering by status
- Send an API request to:
` action=query&list=communityrequests-wishes&crwstatuses=inprogress ` - ✅❓❌⬜ AC3: Confirm that only wishes with the inprogress status are returned.
Test Case 4: Verify filtering by focus area
- Send an API request to:
` action=query&list=communityrequests-wishes&crwfocusareas=FA1 ` - ✅❓❌⬜ AC4: Confirm that only wishes belonging to the specified focus area (FA1) are returned.
QA Results - Meta Beta
| AC | Status | Details |
|---|---|---|
| 1 | ✅ | T403907#11251073 |
| 2 | ✅ | T403907#11251073 |
| 3 | ✅ | T403907#11251073 |
| 4 | ✅ | T403907#11251073 |




