mirror of
https://github.com/bellingcat/auto-archiver-api.git
synced 2026-06-13 05:58:35 +03:00
fixes bad input for limit
This commit is contained in:
@@ -15,6 +15,8 @@ DATABASE_QUERY_LIMIT = get_settings().DATABASE_QUERY_LIMIT
|
|||||||
|
|
||||||
# --------------- TASK = Archive
|
# --------------- TASK = Archive
|
||||||
|
|
||||||
|
def get_limit(user_limit:int):
|
||||||
|
return max(1, min(user_limit, DATABASE_QUERY_LIMIT))
|
||||||
|
|
||||||
def get_archive(db: Session, id: str, email: str):
|
def get_archive(db: Session, id: str, email: str):
|
||||||
email = email.lower()
|
email = email.lower()
|
||||||
@@ -40,12 +42,12 @@ def search_archives_by_url(db: Session, url: str, email: str, skip: int = 0, lim
|
|||||||
query = query.filter(models.Archive.created_at > archived_after)
|
query = query.filter(models.Archive.created_at > archived_after)
|
||||||
if archived_before:
|
if archived_before:
|
||||||
query = query.filter(models.Archive.created_at < archived_before)
|
query = query.filter(models.Archive.created_at < archived_before)
|
||||||
return query.order_by(models.Archive.created_at.desc()).offset(skip).limit(min(limit, DATABASE_QUERY_LIMIT)).all()
|
return query.order_by(models.Archive.created_at.desc()).offset(skip).limit(get_limit(limit)).all()
|
||||||
|
|
||||||
|
|
||||||
def search_archives_by_email(db: Session, email: str, skip: int = 0, limit: int = 100):
|
def search_archives_by_email(db: Session, email: str, skip: int = 0, limit: int = 100):
|
||||||
email = email.lower()
|
email = email.lower()
|
||||||
return base_query(db).filter(models.Archive.author_id == email).order_by(models.Archive.created_at.desc()).offset(skip).limit(min(limit, DATABASE_QUERY_LIMIT)).all()
|
return base_query(db).filter(models.Archive.author_id == email).order_by(models.Archive.created_at.desc()).offset(skip).limit(get_limit(limit)).all()
|
||||||
|
|
||||||
|
|
||||||
def create_task(db: Session, task: schemas.ArchiveCreate, tags: list[models.Tag], urls: list[models.ArchiveUrl]):
|
def create_task(db: Session, task: schemas.ArchiveCreate, tags: list[models.Tag], urls: list[models.ArchiveUrl]):
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ def test_search_archives_by_url(test_data, db_session):
|
|||||||
|
|
||||||
# limit
|
# limit
|
||||||
assert len(crud.search_archives_by_url(db_session, "https://example", ALLOW_ANY_EMAIL, limit=10)) == 10
|
assert len(crud.search_archives_by_url(db_session, "https://example", ALLOW_ANY_EMAIL, limit=10)) == 10
|
||||||
|
assert len(crud.search_archives_by_url(db_session, "https://example", ALLOW_ANY_EMAIL, limit=-1)) == 1
|
||||||
|
|
||||||
# skip
|
# skip
|
||||||
assert len(crud.search_archives_by_url(db_session, "https://example", ALLOW_ANY_EMAIL, skip=10)) == 90
|
assert len(crud.search_archives_by_url(db_session, "https://example", ALLOW_ANY_EMAIL, skip=10)) == 90
|
||||||
|
|||||||
Reference in New Issue
Block a user