cyntaria/UniPal-Backend

[DELETE] A Term

arafaysaleem opened this issue · 0 comments

Summary

As an admin, I should be able to delete terms, so that I can remove old or inconsistent entries.

Acceptance Criteria

GIVEN an admin is deleting an term in the app
WHEN the app hits the /terms/:id endpoint with a valid DELETE request, containing the path parameter:

  • :id, the unique id of the entity being removed.

THEN the app should receive a status 200
AND in the response, the following information should be returned:

  • header message indicating delete operation success

Sample Request/Sample Response

headers: {
    error: 0,
    message: "The specified item was deleted successfully"
}
body: {}

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: DELETE request is successful:

  1. Create a new term with a POST request to /terms endpoint and ensure status code 200 is returned.
  2. With the id returned from the POST, make a DELETE request to /terms/:id endpoint and ensure status code 200 is returned.
  3. A subsequent GET request to /terms/:id endpoint should return a status code 404.
  4. And the response headers' code parameter should contain "NotFoundException".

Scenario 2: DELETE request is unsuccessful

  1. Make a DELETE request to /terms/:id endpoint containing a non-existent term_id.
  2. Ensure a 404 status code is returned.
  3. And the response headers' code parameter should contain "NotFoundException".

Scenario 3: DELETE request is forbidden

  1. Make a DELETE request to /terms/:id endpoint using a student account token.
  2. Ensure the endpoint returns a 403 forbidden status code.
  3. And the response headers' code parameter should contain "ForbiddenException"

Scenario 4: DELETE request is unauthorized

  1. Send a DELETE request to /terms/:id endpoint without an authorization token
  2. Ensure a 401 unauthorized status code is returned.
  3. And the response headers' code parameter should contain "TokenMissingException"