cyntaria/UniPal-Backend

[DELETE] A Teacher

arafaysaleem opened this issue · 0 comments

Summary

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

Acceptance Criteria

GIVEN an admin is deleting a teacher in the app
WHEN the app hits the /teachers/: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 teacher with a POST request to /teachers endpoint and ensure status id 200 is returned.
  2. Make a DELETE request to /teachers/:id endpoint and ensure status id 200 is returned.
  3. A subsequent GET request to /teachers/:id endpoint should return a status id 404.
  4. And the response headers' id parameter should contain "NotFoundException".

Scenario 2: DELETE request is unsuccessful due to unknown teacher id

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

Scenario 3: DELETE request is forbidden

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

Scenario 4: DELETE request is unauthorized

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