Esempio n. 1
0
    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
        )
Esempio n. 2
0
 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)
Esempio n. 3
0
    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)
Esempio n. 4
0
    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)