예제 #1
0
    def create(self, request):
        new_file_form = XPIForm(request, request.POST, request.FILES)

        if not new_file_form.is_valid():
            return _xpi_form_error(new_file_form, request)

        # License can be optional.
        license = None
        if 'builtin' in request.POST:
            license_form = LicenseForm(request.POST)
            if not license_form.is_valid():
                return _form_error(license_form)
            license = license_form.save()

        addon = new_file_form.create_addon(license=license)
        if not license:
            # If there is no license, we push you to step
            # 5 so that you can pick one.
            addon.submitstep_set.create(step=5)

        serializer = self.serializer_class(addon)
        return Response(
            serializer.data, **{
                'status': 201,
                'headers': {
                    'Location': reverse('api.addon',
                                        kwargs={'addon_id': addon.id})
                }
            })
예제 #2
0
    def create(self, request):
        new_file_form = XPIForm(request, request.POST, request.FILES)

        if not new_file_form.is_valid():
            return _xpi_form_error(new_file_form, request)

        # License can be optional.
        license = None
        if 'builtin' in request.POST:
            license_form = LicenseForm(request.POST)
            if not license_form.is_valid():
                return _form_error(license_form)
            license = license_form.save()

        addon = new_file_form.create_addon(license=license)
        if not license:
            # If there is no license, we push you to step
            # 5 so that you can pick one.
            addon.submitstep_set.create(step=5)

        serializer = self.serializer_class(addon)
        return Response(serializer.data, **{
            'status': 201,
            'headers': {
                'Location': reverse('api.addon', kwargs={'addon_id': addon.id})
            }
        })
예제 #3
0
    def update(self, request, addon, version):
        new_file_form = XPIForm(request, request.PUT, request.FILES,
                                version=version)

        if not new_file_form.is_valid():
            return _xpi_form_error(new_file_form, request)

        license = None
        if 'builtin' in request.POST:
            license_form = LicenseForm(request.POST)
            if not license_form.is_valid():
                return _form_error(license_form)
            license = license_form.save()

        v = new_file_form.update_version(license)
        return v
예제 #4
0
    def create(self, request, addon_id):
        addon = get_object_or_404(Addon, id=addon_id)
        new_file_form = XPIForm(request, request.POST, request.FILES,
                                addon=addon)

        if not new_file_form.is_valid():
            return _xpi_form_error(new_file_form, request)

        license = None
        if 'builtin' in request.POST:
            license_form = LicenseForm(request.POST)
            if not license_form.is_valid():
                return _form_error(license_form)
            license = license_form.save()

        v = new_file_form.create_version(license=license)
        serializer = self.serializer_class(v)
        return Response(serializer.data)
예제 #5
0
    def create(self, request, addon_id):
        addon = get_object_or_404(Addon, id=addon_id)
        new_file_form = XPIForm(request,
                                request.POST,
                                request.FILES,
                                addon=addon)

        if not new_file_form.is_valid():
            return _xpi_form_error(new_file_form, request)

        license = None
        if 'builtin' in request.POST:
            license_form = LicenseForm(request.POST)
            if not license_form.is_valid():
                return _form_error(license_form)
            license = license_form.save()

        v = new_file_form.create_version(license=license)
        serializer = self.serializer_class(v)
        return Response(serializer.data)
예제 #6
0
    def create(self, request):
        new_file_form = XPIForm(request, request.POST, request.FILES)

        if not new_file_form.is_valid():
            return _xpi_form_error(new_file_form, request)

        # License can be optional.
        license = None
        if 'builtin' in request.POST:
            license_form = LicenseForm(request.POST)
            if not license_form.is_valid():
                return _form_error(license_form)
            license = license_form.save()

        addon = new_file_form.create_addon(license=license)
        if not license:
            # If there is no license, we push you to step
            # 5 so that you can pick one.
            addon.submitstep_set.create(step=5)

        return addon
예제 #7
0
    def update(self, request, addon_id, version_id):
        try:
            version = self.get_object()
        except Http404:
            return Response(status=410)

        new_file_form = XPIForm(request, request.DATA, request.FILES,
                                version=version)

        if not new_file_form.is_valid():
            return _xpi_form_error(new_file_form, request)

        license = None
        if 'builtin' in request.DATA:
            license_form = LicenseForm(request.DATA)
            if not license_form.is_valid():
                return _form_error(license_form)
            license = license_form.save()

        v = new_file_form.update_version(license)
        serializer = self.serializer_class(v)
        return Response(serializer.data)
예제 #8
0
    def update(self, request, addon_id, version_id):
        try:
            version = self.get_object()
        except Http404:
            return Response(status=410)

        new_file_form = XPIForm(request,
                                request.DATA,
                                request.FILES,
                                version=version)

        if not new_file_form.is_valid():
            return _xpi_form_error(new_file_form, request)

        license = None
        if 'builtin' in request.DATA:
            license_form = LicenseForm(request.DATA)
            if not license_form.is_valid():
                return _form_error(license_form)
            license = license_form.save()

        v = new_file_form.update_version(license)
        serializer = self.serializer_class(v)
        return Response(serializer.data)