Page MenuHomePhabricator

❄️ Remove item's label in a specific language
Closed, ResolvedPublic5 Estimated Story Points

Description

As a tool developer I want to be able to remove old or wrong information in a given language on a item's label
DELETE /entities/items/{item_id}/labels/{lang_code}

Acceptance criteria:

  • On the successful removal, API should respond with 200 and "label deleted" as a response body.
    • 200 response should also contain Content-Language header with "en" as a value
  • Following error cases have to be considered:
HTTP response coderesponse payload
Item does not exist404"code": "item-not-found"
"message": "Could not find an item with the ID: {item_id}"
Invalid item ID400"code": "invalid-item-id"
"message": "Not a valid item ID: <ITEM_ID>"
Invalid language code400"code": "invalid-language-code"
"message": "Not a valid language code : <language code>"
Item does not have label in given language404"code": "label-not-defined"
"message": "Item with the ID <ITEM_ID> does not have a label in the language: <LANGUAGE CODE>"
Invalid edit tag400{ "code": "invalid-edit-tag", "message": "Invalid MediaWiki tag: {tag}" }
Comment too long400{"code": "comment-too-long", "message": "Comment must not be longer than {limit} characters"}

Notes:

  • "Automated edit summary" related to the edit to be of form: /* wbsetlabel-remove:1|{language_code} */ LABEL-TEXT
  • client can provide additional edit metadata: mediawiki tags, edit summary text to append to the automated summary, and a bot edit flag, like in DELETE /entities/items/{item_id}/statements/{statement_id}
  • Allow empty request body.
  • Handle HTTP conditional request headers as in DELETE /entities/item/{item_id}/statements/{statement_id}
  • Handle user authentication/authorization like in DELETE /entities/items/{item_id}/statements/{statement_id}

Task breakdown notes:

  • Add the new route to OAS.
  • happy path (with empty edit summary)
    • ETag and Last-Modified
  • Implement use case validation and deserialization
  • Add the "remove label" edit summary
  • Respond 404/409 if item not found/redirect or item does not have a label in the requested language
  • Authorization
  • Use the usual middlewares and add the route handler to RouteHandlersTest
  • Add spec tests.
  • Mark as production ready.

Event Timeline

Silvan_WMDE renamed this task from Remove item's label in a specific label to Remove item's label in a specific language.May 3 2023, 9:56 AM
Jakob_WMDE set the point value for this task to 8.
Muhammad_Yasser_Jazirahly_WMDE renamed this task from Remove item's label in a specific language to ❄️ Remove item's label in a specific language.Nov 16 2023, 9:26 AM
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy