hngprojects / hng_boilerplate_python_fastapi_web

Apache License 2.0
154 stars 137 forks source link

[FEAT]: Endpoint To Delete Blog Like #965

Open chimeziriobioha opened 3 weeks ago

chimeziriobioha commented 3 weeks ago

Description:

Implement an endpoint to enable users who previously liked a blog post to remove the like.

Acceptance Criteria:

Purpose

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

Requirements

Expected Outcome:

Blog readers should be able to remove like 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/likes/{blog_like_id} \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -d ....

Response Body [Success]:

status_code: 204

Response Body [Errors]:

Testing:

Added Fix:

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

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