[POST] A New Term
arafaysaleem opened this issue · 0 comments
arafaysaleem commented
Summary
As an admin
, I should be able to create terms, so that students can select one while creating a class.
Acceptance Criteria
GIVEN an admin
is creating a terms entry in the app
WHEN the app hits the /terms
endpoint with a valid POST request, containing:
- term
THEN the app should receive a status 201
AND in the response, the following information should be returned:
- headers
- term_id
Sample Request/Sample Response
headers: {
error: 0,
message: "..."
}
body: {
"term_id": "1",
"affected_rows": 1
}
Resources
- Development URL: {Here goes a URL to the feature on development API}
- Production URL: {Here goes a URL to the feature on production API}
Dev Notes
{Some complementary notes if necessary}
Testing Notes
Scenario 1: POST request is successful
- Create a new term entry with a POST request to
/terms
endpoint and ensure a201
status code is returned. - Use the
id
returned by the response in a subsequent GET request to/terms/:id
endpoint and ensure a200
status code is returned. - Ensure the response contains an term with the correct information i.e. matching the initially sent body.
- Clean up the database by sending a DELETE request to
/terms/:id
endpoint and ensure a200
status code is returned.
Scenario 2: POST request is incorrect
- Send a POST request to
/terms
endpoint with an incorrect key name in the body - Ensure a
422
status code is returned - And the response headers'
code
parameter should contain "InvalidPropertiesException". - And the response headers'
data
parameter should contain the name of the invalid parameter.
Scenario 3: POST request is forbidden
- Send a POST request to
/terms
endpoint with astudent
account token. - Ensure a
403
forbidden status code is returned. - And the response headers'
code
parameter should contain "ForbiddenException"
Scenario 4: POST request is unauthorized
- Send a POST request to
/terms
endpoint without an authorization token - Ensure a
401
unauthorized status code is returned. - And the response headers'
code
parameter should contain "TokenMissingException"