Skip to content

Commit

Permalink
fix: don't include deleted images in searched logos
Browse files Browse the repository at this point in the history
  • Loading branch information
raphael0202 committed Nov 7, 2023
1 parent 74b48f5 commit 1fce684
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
2 changes: 1 addition & 1 deletion doc/references/api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ paths:
tags:
- Logos
summary: Fetch logos
description: Return details about requested logos
description: Return details about requested logos (maximum 500 logos can be fetched per request).
parameters:
- name: logo_ids
description: Comma-separated string of logo IDs
Expand Down
26 changes: 22 additions & 4 deletions robotoff/app/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -836,9 +836,16 @@ def image_response(image: Image.Image, resp: falcon.Response) -> None:

class ImageLogoResource:
def on_get(self, req: falcon.Request, resp: falcon.Response):
"""Return details about requested logos."""
logo_ids: list[str] = req.get_param_as_list(
"logo_ids", transform=int, required=True
)

if len(logo_ids) > 500:
raise falcon.HTTPBadRequest(
description="too many logos requested, max: 500"
)

logos = []
for logo in (
LogoAnnotation.select()
Expand Down Expand Up @@ -885,7 +892,11 @@ def on_get(self, req: falcon.Request, resp: falcon.Response):
"for label type"
)

where_clauses = [ImageModel.server_type == server_type.name]
where_clauses = [
ImageModel.server_type == server_type.name,
# Don't include logos from deleted images
ImageModel.deleted == False, # noqa
]
if annotated is not None:
where_clauses.append(LogoAnnotation.annotation_value.is_null(not annotated))

Expand Down Expand Up @@ -1135,7 +1146,16 @@ def on_get(

if logo_id is None:
logo_embeddings = list(
LogoEmbedding.select().order_by(peewee.fn.Random()).limit(1)
LogoEmbedding.select()
.join(ImagePrediction)
.join(ImageModel)
.where(
ImageModel.server_type == server_type.name,
# Don't include logos from deleted images
ImageModel.deleted == False, # noqa
)
.order_by(peewee.fn.Random())
.limit(1)
)

if not logo_embeddings:
Expand Down Expand Up @@ -1746,8 +1766,6 @@ def on_get(self, req: falcon.Request, resp: falcon.Response):
api.add_route("/api/v1/images/logos/{logo_id:int}/reset", ImageLogoResetResource())
api.add_route("/api/v1/images/logos/annotate", ImageLogoAnnotateResource())
api.add_route("/api/v1/images/logos/update", ImageLogoUpdateResource())
api.add_route("/api/v1/ann/{logo_id:int}", ANNResource())
api.add_route("/api/v1/ann", ANNResource())
api.add_route("/api/v1/ann/search/{logo_id:int}", ANNResource())
api.add_route("/api/v1/ann/search", ANNResource())
api.add_route("/api/v1/questions/{barcode}", ProductQuestionsResource())
Expand Down

0 comments on commit 1fce684

Please sign in to comment.