hngprojects / hng_boilerplate_python_fastapi_web

Apache License 2.0
154 stars 137 forks source link

[FEAT]: Endpoint To Delete Blog Dislike #966

Open chimeziriobioha opened 3 weeks ago

chimeziriobioha commented 3 weeks ago

Description:

Implement an endpoint to enable users who previously disliked a blog post to remove the dislike.

Acceptance Criteria:

Purpose

To enable a blog post readers to remove dislike from any particular post after adding one.

Requirements

Expected Outcome:

Blog readers should be able to remove dislike from a blog post if they posted it in error or just changed their mind.


Tasks:

Example Request [With Auth Token]:

curl -X DELETE {rootdomain}/api/v1/blogs/dislikes/{blog_dislike_id} \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -d ....

Response [Success]:

status_code: 204

Response Body [Errors]:

Testing:

Added Fix:

Enable /api/v1/blogs/{blog_id}/dislike endpoint to automatically remove existing like by the current_user before creating new dislike, and vice versa with the /api/v1/blogs/{blog_id}/like endpoint.

This is important if a user clicks the dislike button after already clicking the like button without first removing the like. Otherwise, the database will have unintended records of both like and dislike for the same user on the same blog.