mitesh001 commited on
Commit
ac9e959
·
1 Parent(s): 5c1169a

Add Delete expense endpoint for deleting user entries by user_id

Browse files
Files changed (1) hide show
  1. main.py +34 -0
main.py CHANGED
@@ -719,6 +719,40 @@ async def not_found_handler(request: Request, exc):
719
  async def internal_error_handler(request: Request, exc):
720
  return ORJSONResponse(status_code=500, content={"error": "Internal server error: " + str(exc)})
721
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
722
  # List expenses of user by id
723
  @app.get("/expenses/{user_id}", response_class=ORJSONResponse)
724
  async def get_user_expenses(user_id: str):
 
719
  async def internal_error_handler(request: Request, exc):
720
  return ORJSONResponse(status_code=500, content={"error": "Internal server error: " + str(exc)})
721
 
722
+ # Delete user's Expenses
723
+ @app.delete("/expenses/{user_id}", response_class=ORJSONResponse)
724
+ async def delete_user_expenses(user_id: str):
725
+ if not user_id:
726
+ return ORJSONResponse(
727
+ status_code=400,
728
+ content={"error": "User ID is required"}
729
+ )
730
+
731
+ try:
732
+ conn = psycopg2.connect(DATABASE_URL)
733
+ cur = conn.cursor()
734
+
735
+ # Delete all entries for the user
736
+ cur.execute("DELETE FROM user_entries WHERE user_id = %s", (user_id,))
737
+ conn.commit()
738
+
739
+ cur.close()
740
+ conn.close()
741
+
742
+ return ORJSONResponse(
743
+ status_code=200,
744
+ content={
745
+ "message": "User entries deleted successfully",
746
+ "deleted_count": count
747
+ }
748
+ )
749
+
750
+ except Exception as e:
751
+ return ORJSONResponse(
752
+ status_code=500,
753
+ content={"error": f"Database error: {str(e)}"}
754
+ )
755
+
756
  # List expenses of user by id
757
  @app.get("/expenses/{user_id}", response_class=ORJSONResponse)
758
  async def get_user_expenses(user_id: str):