feat(submissions): admin call to process ocr data
This commit is contained in:
@@ -8,6 +8,7 @@ from django.shortcuts import get_object_or_404
|
||||
from games.models import Game
|
||||
from .models import Submission, SubmissionFile, ImageCrop, OCRStatus
|
||||
from .schemas import SubmissionOut, ImageCropIn, ImageCropOut
|
||||
from .tasks import process_submission_file, process_crop
|
||||
|
||||
router = Router()
|
||||
|
||||
@@ -104,3 +105,33 @@ def delete_image_crop(request: HttpRequest, crop_id: UUID):
|
||||
crop.delete()
|
||||
|
||||
return {"status": "deleted"}
|
||||
|
||||
|
||||
@router.post("/files/{file_id}/process-ocr", response=dict)
|
||||
def process_file_ocr(request: HttpRequest, file_id: UUID):
|
||||
if not request.user.is_staff:
|
||||
return 403, {"detail": "Admin access required"}
|
||||
|
||||
submission_file = get_object_or_404(SubmissionFile, id=file_id)
|
||||
submission_file.ocr_status = OCRStatus.TO_PROCESS
|
||||
submission_file.save()
|
||||
|
||||
# Enqueue the OCR processing task
|
||||
process_submission_file.enqueue(str(file_id))
|
||||
|
||||
return {"status": "queued"}
|
||||
|
||||
|
||||
@router.post("/crops/{crop_id}/process-ocr", response=dict)
|
||||
def process_crop_ocr(request: HttpRequest, crop_id: UUID):
|
||||
if not request.user.is_staff:
|
||||
return 403, {"detail": "Admin access required"}
|
||||
|
||||
crop = get_object_or_404(ImageCrop, id=crop_id)
|
||||
crop.ocr_status = OCRStatus.TO_PROCESS
|
||||
crop.save()
|
||||
|
||||
# Enqueue the OCR processing task
|
||||
process_crop.enqueue(str(crop_id))
|
||||
|
||||
return {"status": "queued"}
|
||||
|
||||
Reference in New Issue
Block a user