def post(self, request, slug): try: runner = Runner.objects.get(slug=slug) except Runner.DoesNotExist: return Response(status=404) serializer = RunnerSerializer(runner) uploaded_file = request.data['file'] runner_dir = os.path.join(settings.FILES_ROOT, 'runners/') if not os.path.isdir(runner_dir): os.makedirs(runner_dir) dest_file_path = os.path.join(runner_dir, uploaded_file.name) with open(dest_file_path, 'wb') as runner_file: for chunk in uploaded_file.chunks(): runner_file.write(chunk) runner_version = RunnerVersion.objects.create( runner=runner, version=request.data['version'], architecture=request.data['architecture'], url=settings.FILES_URL + 'runners/' + uploaded_file.name ) runner_version.save() return Response( serializer.data, status=status.HTTP_201_CREATED )
def get(self, request, slug): # pylint: disable=W0221 try: runner = Runner.objects.get(slug=slug) except Runner.DoesNotExist: return Response(status=404) serializer = RunnerSerializer(runner) return Response(serializer.data)
def post(self, request, slug): try: runner = Runner.objects.get(slug=slug) except Runner.DoesNotExist: return Response(status=404) serializer = RunnerSerializer(runner) if 'url' in request.data: url = request.data['url'] else: url = self.upload(request) runner_version = RunnerVersion.objects.create( runner=runner, version=request.data['version'], architecture=request.data['architecture'], url=url) runner_version.save() return Response(serializer.data, status=status.HTTP_201_CREATED)
def post(self, request, slug, *args, **kwargs): # pylint: disable=arguments-differ try: runner = Runner.objects.get(slug=slug) except Runner.DoesNotExist: return Response(status=404) serializer = RunnerSerializer(runner) if "url" in request.data: url = request.data["url"] else: url = self.upload(request) runner_version = RunnerVersion.objects.create( runner=runner, version=request.data["version"], architecture=request.data["architecture"], url=url, ) runner_version.save() return Response(serializer.data, status=status.HTTP_201_CREATED)