diff --git a/app/api/tasks.py b/app/api/tasks.py index b7df380e..4a5c8b45 100644 --- a/app/api/tasks.py +++ b/app/api/tasks.py @@ -7,7 +7,8 @@ from django.contrib.auth import get_user_model from django.shortcuts import get_object_or_404 from .models import Document, Label, Project -from .serializers import DocumentSerializer, LabelSerializer +from .views.download.factory import create_repository, create_writer +from .views.download.service import ExportApplicationService from .views.upload.exception import FileParseException from .views.upload.factory import (get_data_class, get_dataset_class, get_label_class) @@ -123,3 +124,13 @@ def injest_data(user_id, project_id, filenames, format: str, **kwargs): buffer.clear() return response + + +@shared_task +def export_dataset(project_id, format: str, export_approved=False): + project = get_object_or_404(Project, pk=project_id) + repository = create_repository(project) + writer = create_writer(format)(settings.MEDIA_ROOT) + service = ExportApplicationService(repository, writer) + filepath = service.export(export_approved) + return filepath