feat: add delete and select all button

This commit is contained in:
Jayden Pyles
2024-07-07 16:27:12 -05:00
parent 2b0153e42d
commit 15fe8eb3ea
7 changed files with 130 additions and 23 deletions

View File

@@ -12,8 +12,13 @@ from fastapi.staticfiles import StaticFiles
from fastapi.middleware.cors import CORSMiddleware
# LOCAL
from api.backend.job import query, insert
from api.backend.models import DownloadJob, SubmitScrapeJob, RetrieveScrapeJobs
from api.backend.job import query, insert, delete_jobs
from api.backend.models import (
DownloadJob,
SubmitScrapeJob,
DeleteScrapeJobs,
RetrieveScrapeJobs,
)
from api.backend.scraping import scrape
from api.backend.auth.auth_router import auth_router
@@ -116,3 +121,13 @@ async def download(download_job: DownloadJob):
except Exception as e:
LOG.error(f"Exception occurred: {e}")
return {"error": str(e)}
@app.post("/api/delete-scrape-jobs")
async def delete(delete_scrape_jobs: DeleteScrapeJobs):
result = await delete_jobs(delete_scrape_jobs.ids)
return (
JSONResponse(content={"message": "Jobs successfully deleted."})
if result
else JSONResponse({"error": "Jobs not deleted."})
)

View File

@@ -24,3 +24,11 @@ async def query(filter: dict[str, Any]) -> list[dict[str, Any]]:
results.append(document)
return results
async def delete_jobs(jobs: list[str]):
collection = get_job_collection()
result = await collection.delete_many({"id": {"$in": jobs}})
LOG.info(f"RESULT: {result.deleted_count} documents deleted")
return True if result.deleted_count > 0 else False

View File

@@ -32,3 +32,7 @@ class RetrieveScrapeJobs(pydantic.BaseModel):
class DownloadJob(pydantic.BaseModel):
id: str
class DeleteScrapeJobs(pydantic.BaseModel):
ids: list[str]