cyntaria/UniPal-Backend

[DELETE] A Class

arafaysaleem opened this issue · 0 comments

Summary

As a student, I should be able to delete classes, so that I can remove old or inconsistent entries.

Acceptance Criteria

GIVEN a student is deleting an class in the app
WHEN the app hits the /classes/:term_id/:class_erp endpoint with a valid DELETE request, containing the path parameter:

  • :class_erp, 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 (Admin):

  1. Create a new class with a POST request to /classes endpoint using an admin account token and ensure a 200 status code is returned.
  2. Make a DELETE request to /classes/:term_id/:class_erp endpoint using an admin account token and ensure a 200 status code is returned.
  3. A subsequent GET request to /classes/:term_id/:class_erp endpoint should return a status code 404.
  4. And the response headers' code parameter should contain "NotFoundException".

Scenario 2: DELETE request is unsuccessful due to unknown class_erp

  1. Make a DELETE request to /classes/:term_id/:class_erp endpoint containing a non-existent class_erp.
  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 /classes/:term_id/:class_erp endpoint for using 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 /classes/:term_id/:class_erp endpoint without an authorization token
  2. Ensure a 401 unauthorized status code is returned.
  3. And the response headers' code parameter should contain "TokenMissingException"