|
15 | 15 | ERR_FILE_EXISTS = 'A file matching this uuid already exists' |
16 | 16 |
|
17 | 17 |
|
| 18 | +def upload_from_request(request, project=None): |
| 19 | + if 'file' not in request.FILES: |
| 20 | + return Response({'detail': 'Missing uploaded file'}, status=400) |
| 21 | + fileobj = request.FILES['file'] |
| 22 | + files = create_files_from_macho_zip(fileobj, project=project) |
| 23 | + return Response(serialize(files, request.user), status=201) |
| 24 | + |
| 25 | + |
18 | 26 | class ConditionalContentNegotiation(DefaultContentNegotiation): |
19 | 27 | """ |
20 | 28 | Overrides the parsers on POST to support file uploads. |
@@ -79,22 +87,18 @@ def post(self, request, project): |
79 | 87 | :param file file: the multipart encoded file. |
80 | 88 | :auth: required |
81 | 89 | """ |
82 | | - if 'file' not in request.FILES: |
83 | | - return Response({'detail': 'Missing uploaded file'}, status=400) |
| 90 | + return upload_from_request(request, project=project) |
84 | 91 |
|
85 | | - fileobj = request.FILES['file'] |
86 | 92 |
|
87 | | - files = create_files_from_macho_zip(fileobj, project) |
| 93 | +class GlobalDSymFilesEndpoint(Endpoint): |
| 94 | + permission_classes = (SystemPermission,) |
88 | 95 |
|
89 | | - return Response(serialize(files, request.user), status=201) |
| 96 | + def post(self, request): |
| 97 | + return upload_from_request(request, project=None) |
90 | 98 |
|
91 | 99 |
|
92 | | -class GlobalDSymFilesEndpoint(Endpoint): |
| 100 | +class UnknownDSymFilesEndpoint(Endpoint): |
93 | 101 | permission_classes = (SystemPermission,) |
94 | 102 |
|
95 | 103 | def post(self, request): |
96 | | - if 'file' not in request.FILES: |
97 | | - return Response({'detail': 'Missing uploaded file'}, status=400) |
98 | | - fileobj = request.FILES['file'] |
99 | | - files = create_files_from_macho_zip(fileobj) |
100 | | - return Response(serialize(files, request.user), status=201) |
| 104 | + return upload_from_request(request, project=None) |
0 commit comments