[GET] All Timetables #212
Labels
Status: Completed
Type: Feature
user story
A brief explanation of a functionality or an interaction with the system, from a user's perspective
Summary
As a
student
, I should be able to get all possible timetables, so that I can see all my past ones.Acceptance Criteria
GIVEN an
student
is requesting all possible timetables in the appWHEN the app hits the
/timetables
endpoint with a valid GET request containing query parameters, either:student_erp
(REQUIRED)is_active
term_id
THEN the app should receive a status
200
AND in the response, the following information should be returned:
Sample Request/Sample Response
For e.g. we want all timetables for a student with erp=17855 and for the term Fall 2021 i.e.
student_erp
=17855,term_id
=1Resources
Dev Notes
This is going to return just the summarized objects for timetables. When user clicks on a single timetable then request goes to [GET] A Single Timetable, which returns a detailed overview.
This endpoint is going to be accessible and work the same way for the admin as well.
Testing Notes
Scenario 1: GET request is successful (Admin Only)
GIVEN an
admin
is requesting all possible timetables in the appWHEN the app hits the
/timetables
endpoint with a valid GET requestTHEN the app should receive a status 200
AND the body should be an array
AND the first item of the array should be an object containing the following fields:
Scenario 2: GET request with query parameters is successful
GIVEN a
student
is requesting all possible timetables in the appWHEN the app hits the
/timetables
endpoint with a valid GET requestAND the query parameters contain
student_erp
=17855THEN the app should receive a status 200
AND the body should be an array
AND the first item of the array should be an object containing the following fields:
AND the key
student_erp
should be equal to 17855Scenario 3: GET request is unsuccessful due to no student timetables
GIVEN a
student
is requesting all possible timetables in the appWHEN the app hits the
/timetables
endpoint with a valid GET requestAND the query parameters contain
student_erp
=17855THEN the app should receive a status
404
AND the response headers'
code
parameter should contain "NotFoundException"Scenario 4: GET request is incorrect due to no query parameters
GIVEN a
student
is requesting all possible timetables in the appWHEN the app hits the
/timetables
endpoint with a valid GET requestAND contains no query parameters
THEN the app should receive a status
422
AND the response headers'
code
parameter should contain "InvalidPropertiesException"AND the response headers'
data
parameter should contain the name of the invalid parametersScenario 5: GET request is incorrect due to unknown query parameters
GIVEN a
student
is requesting all possible timetables in the appWHEN the app hits the
/timetables
endpoint with a valid GET requestAND contains unknown query parameters
THEN the app should receive a status
422
AND the response headers'
code
parameter should contain "InvalidPropertiesException"AND the response headers'
data
parameter should contain the name of the invalid parametersScenario 6: GET request is unauthorized
GIVEN a
student
is requesting all possible timetables in the appWHEN the app hits the
/timetables
endpoint with a valid GET requestAND the request contains no authorization token
THEN the app should receive a status
401
UnauthorizedAND the response headers'
code
parameter should contain "TokenMissingException"The text was updated successfully, but these errors were encountered: