-
-
Notifications
You must be signed in to change notification settings - Fork 617
Open
Description
What happened?
In backend/app/routes/images.py, the /toggle-favourite endpoint fetches all images from the database just to retrieve the updated favourite status of a single image:
image = next(
(img for img in db_get_all_images() if img["id"] == image_id), None
)This is a full table scan on every toggle action. If a user has thousands of images, this is extremely slow and wasteful.
Why this matters
- Poor performance at scale
- Unnecessary database load on every favourite toggle
db_get_all_images()is an expensive query with JOINs
Proposed fix
Add a db_get_image_by_id(image_id) function to database/images.py and use it instead of scanning all images.
Expected behavior
The endpoint should fetch only the single toggled image using its ID.
I'd like to fix this if maintainers agree.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels