Initial commit
This commit is contained in:
34
spec.md
Normal file
34
spec.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Spec: Wikimedia article manipulation library
|
||||
|
||||
**Goal**: Create a rust library providing high level and low level functions manipulating the properties
|
||||
and the content of wikimedia pages. This library must ne built on top of the 2 existing rust libraries
|
||||
parse_wiki_text and parse_wiki_text to implement those functionalities
|
||||
|
||||
**User Story 1**: As a user, I want to get the raw text content of a wikimedia article by specifying the site, language and article name.
|
||||
**User Story 2**: As a user, I want to get the list of all the links of an article
|
||||
**User Story 3**: As a user, I want to get the list of all the categories of an article
|
||||
**User Story 4**: As a user, I want to get the list of all the references of an article
|
||||
**User Story 5**: As a user, I want to get the list of all the templates of an article
|
||||
**User Story 6**: As a user, I want to get the list of all the parameters of a template
|
||||
|
||||
**Functional Requirements**:
|
||||
1. Use mediawiki_rest_api to get access to the wikimedia article
|
||||
2. Use mediawiki_rest_api to get the initial content of the article
|
||||
3. Use parse_wiki_text to parse the wikimedia article
|
||||
4. Use parse_wiki_text to interact with any internal content of the article
|
||||
5. Use parse_wiki_text nodes
|
||||
6. Always write unit tests for every functions
|
||||
|
||||
**Technical Constraints**:
|
||||
- rust language
|
||||
- mediawiki_rest_api
|
||||
- parse_wiki_text
|
||||
|
||||
**Test Cases**:
|
||||
- **Scenario A**: Valid access -> Status 200 + content of the article.
|
||||
- **Scenario B**: Valid access -> Status 200 + categories of the article.
|
||||
- **Scenario C**: Valid access -> Status 200 + links of the article.
|
||||
- **Scenario D**: Valid access -> Status 200 + references of the article.
|
||||
- **Scenario E**: Valid access -> Status 200 + templates of the article.
|
||||
- **Scenario F**: Valid access -> Status 200 + parameters of a template.
|
||||
- **Scenario Z**: Incorrect article -> Status 401 + error message.
|
||||
Reference in New Issue
Block a user