-
Notifications
You must be signed in to change notification settings - Fork 27
/
views.py
76 lines (43 loc) · 1.84 KB
/
views.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from rest_framework import status
from rest_framework.permissions import IsAdminUser
from rest_framework.response import Response
from rest_framework.views import APIView
from core.common.tasks import import_v1_content
class BaseImporterView(APIView):
importer = None
swagger_schema = None
permission_classes = (IsAdminUser,)
def post(self, request):
file_url = request.data.get('file_url', None)
if not file_url:
return Response(dict(error=['Export File URL is mandatory']), status=status.HTTP_400_BAD_REQUEST)
task = import_v1_content.apply_async((self.importer, file_url, ), )
return Response(dict(task=task.id, state=task.state, queue=task.queue), status=status.HTTP_202_ACCEPTED)
class OrganizationsImporterView(BaseImporterView):
importer = 'organization'
class UsersImporterView(BaseImporterView):
importer = 'user'
class SourcesImporterView(BaseImporterView):
importer = 'source'
class SourceVersionsImporterView(BaseImporterView):
importer = 'source_version'
class SourceIdsImporterView(BaseImporterView):
importer = 'source_id'
class CollectionsImporterView(BaseImporterView):
importer = 'collection'
class CollectionVersionsImporterView(BaseImporterView):
importer = 'collection_version'
class CollectionIdsImporterView(BaseImporterView):
importer = 'collection_id'
class ConceptsImporterView(BaseImporterView):
importer = 'concept'
class ConceptVersionsImporterView(BaseImporterView):
importer = 'concept_version'
class ConceptIdsImporterView(BaseImporterView):
importer = 'concept_id'
class MappingsImporterView(BaseImporterView):
importer = 'mapping'
class MappingVersionsImporterView(BaseImporterView):
importer = 'mapping_version'
class WebUserCredentialsImporterView(BaseImporterView):
importer = 'web_user_credential'