Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[POST] A Reaction On A Post #141

Closed
Tracked by #18
arafaysaleem opened this issue Oct 16, 2021 · 0 comments · Fixed by #145
Closed
Tracked by #18

[POST] A Reaction On A Post #141

arafaysaleem opened this issue Oct 16, 2021 · 0 comments · Fixed by #145
Assignees
Labels
Status: Completed Type: Feature user story A brief explanation of a functionality or an interaction with the system, from a user's perspective

Comments

@arafaysaleem
Copy link
Collaborator

Summary

As a student, I should be able to select reaction on a post, so that I can show my emotion.

Acceptance Criteria

GIVEN an student is choosing a reaction on a post in the app
WHEN the app hits the /posts/:id/reactions endpoint with a valid POST request, containing:

  • reaction_type_id int(10),
  • student_erp varchar(5)
  • reacted_at datetime

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

  • headers
  • affected_rows

Sample Request/Sample Response

headers: {
    error: 0,
    message: "..."
}
body: {
    "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

Use the :id in path parameter as the post_id for the body

Testing Notes

Scenario 1: POST request is successful

  1. Create a new reaction type entry with a POST request to /posts/:id/reactions endpoint and ensure a 201 status code is returned.
  2. Make a subsequent GET request to /posts/:id/reactions/:student_erp endpoint and ensure a 200 status code is returned.
  3. Ensure the response contains an attendee with the correct information i.e. matching the initially sent body.
  4. Clean up the database by sending a DELETE request to /posts/:id/reactions/:student_erp endpoint and ensure a 200 status code is returned.

Scenario 2: POST request is unsuccessful due to unknown post id

  1. Make a POST request to /posts/:id/reactions endpoint containing a non-existent :id.
  2. Ensure a 512 status code is returned.
  3. And the response headers' code parameter should contain "ForeignKeyViolationException"

Scenario 3: POST request is incorrect

  1. Send a POST request to /posts/:id/reactions endpoint with an incorrect key name in the body
  2. Ensure a 422 status code is returned
  3. And the response headers' code parameter should contain "InvalidPropertiesException"
  4. And the response headers' data parameter should contain the name of the invalid parameter

Scenario 4: POST request is forbidden

  1. Send a POST request to /posts/:id/reactions endpoint with student_erp != erp in student account token.
  2. Ensure the response returns a 403 forbidden status code.
  3. And the response headers' code parameter should contain "ForbiddenException"

Scenario 5: POST request is unauthorized

  1. Send a POST request to /posts/:id/reactions endpoint without an authorization token
  2. Ensure a 401 unauthorized status code is returned.
  3. And the response headers' code parameter should contain "TokenMissingException"
@arafaysaleem arafaysaleem added Priority: Medium Status: Pending Type: Feature user story A brief explanation of a functionality or an interaction with the system, from a user's perspective labels Oct 16, 2021
@arafaysaleem arafaysaleem mentioned this issue Oct 16, 2021
13 tasks
@arafaysaleem arafaysaleem self-assigned this Oct 19, 2021
@arafaysaleem arafaysaleem mentioned this issue Oct 20, 2021
27 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Completed Type: Feature user story A brief explanation of a functionality or an interaction with the system, from a user's perspective
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant