- https://github.com/Back-end-to-the-Future/product-overview
- https://github.com/Back-end-to-the-Future/ratings-and-reviews-module
- https://github.com/Back-end-to-the-Future/QandA_Module
run npm start
- Note: This app will display a blank page if the instances of the related modules above are not running.
- Node 6.13.0
- etc
From within the root directory:
npm install
GET /qa/:product_id
Retrieves a list of questions for a particular product. This list does not include any reported questions.
Parameters
Parameter | Type | Description |
---|---|---|
product_id | integer | Specifies the product for which to retrieve questions. |
page | integer | Selects the page of results to return. Default 1. |
count | integer | Specifies how many results per page to return. Default 5. |
Response
Status: 200 OK
{
"product_id": "5",
"results": [{
"question_id": 37,
"question_body": "Why is this product cheaper here than other sites?",
"question_date": "2018-10-18T00:00:00.000Z",
"asker_name": "williamsmith",
"question_helpfulness": 4,
"reported": 0,
"answers": {
68: {
"id": 68,
"body": "We are selling it here without any markup from the middleman!",
"date": "2018-08-18T00:00:00.000Z",
"answerer_name": "Seller",
"helpfulness": 4,
"photos": []
// ...
}
}
},
{
"question_id": 38,
"question_body": "How long does it last?",
"question_date": "2019-06-28T00:00:00.000Z",
"asker_name": "funnygirl",
"question_helpfulness": 2,
"reported": 0,
"answers": {
70: {
"id": 70,
"body": "Some of the seams started splitting the first time I wore it!",
"date": "2019-11-28T00:00:00.000Z",
"answerer_name": "sillyguy",
"helpfulness": 6,
"photos": [],
},
78: {
"id": 78,
"body": "9 lives",
"date": "2019-11-12T00:00:00.000Z",
"answerer_name": "iluvdogz",
"helpfulness": 31,
"photos": [],
}
}
},
// ...
]
}
Returns answers for a given question. This list does not include any reported answers.
GET /qa/:question_id/answers
Parameters
Parameter | Type | Description |
---|---|---|
question_id | integer | Required ID of the Question requested |
page | integer | Selects the page of results to return. Default 1. |
count | integer | Specifies how many results per page to return. Default 5. |
Response
Status: 200 OK
{
"question": "1",
"page": 0,
"count": 5,
"results": [
{
"answer_id": 8,
"body": "What a great question!",
"date": "2018-01-04T00:00:00.000Z",
"answerer_name": "metslover",
"helpfulness": 8,
"photos": [],
},
{
"answer_id": 5,
"body": "Something pretty durable but I can't be sure",
"date": "2018-01-04T00:00:00.000Z",
"answerer_name": "metslover",
"helpfulness": 5,
"photos": [{
"id": 1,
"url": "urlplaceholder/answer_5_photo_number_1.jpg"
},
{
"id": 2,
"url": "urlplaceholder/answer_5_photo_number_2.jpg"
},
// ...
]
},
// ...
]
}
Adds a question for the given product
POST /qa/:product_id
Parameters
Parameter | Type | Description |
---|---|---|
product_id | integer | Required ID of the Product to post the question for |
Body Parameters
Parameter | Type | Description |
---|---|---|
body | text | Text of question being asked |
name | text | Username for question asker |
text | Email address for question asker |
Response
Status: 201 CREATED
Adds an answer for the given question
POST /qa/:question_id/answers
Parameters
Parameter | Type | Description |
---|---|---|
question_id | integer | Required ID of the question to post the answer for |
Body Parameters
Parameter | Type | Description |
---|---|---|
body | text | Text of question being asked |
name | text | Username for question asker |
text | Email address for question asker | |
photos | [text] | An array of urls corresponding to images to display |
Response
Status: 201 CREATED
Updates a question to show it was found helpful.
PUT /qa/question/:question_id/helpful
Parameters
Parameter | Type | Description |
---|---|---|
question_id | integer | Required ID of the question to update |
Response
Status: 204 NO CONTENT
Updates a question to show it was reported. Note, this action does not delete the question, but the question will not be returned in the above GET request.
PUT /qa/question/:question_id/report
Parameters
Parameter | Type | Description |
---|---|---|
question_id | integer | Required ID of the question to update |
Response
Status: 204 NO CONTENT
Updates an answer to show it was found helpful.
PUT /qa/answer/:answer_id/helpful
Parameters
Parameter | Type | Description |
---|---|---|
answer_id | integer | Required ID of the answer to update |
Response
Status: 204 NO CONTENT
Updates an answer to show it has been reported. Note, this action does not delete the answer, but the answer will not be returned in the above GET request.
PUT /qa/answer/:answer_id/report
Parameters
Parameter | Type | Description |
---|---|---|
answer_id | integer | Required ID of the answer to update |
Response
Status: 204 NO CONTENT