From 1309c07af576512a63b636b3a9e5df0293060aac Mon Sep 17 00:00:00 2001 From: Hironsan Date: Mon, 19 Apr 2021 19:00:12 +0900 Subject: [PATCH] Add celery task for exporting dataset --- app/api/tasks.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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