コード例 #1
0
ファイル: status.py プロジェクト: WilliamRen/solitude
    def check_bango(self, obj):
        view = BangoResource()
        pk = obj.seller_product_bango.pk
        form = CreateBillingConfigurationForm({
            'seller_product_bango': (
                self.get_serializer().fields['seller_product_bango']
                    .to_native(obj.seller_product_bango)),
            'pageTitle': 'Test of app status',
            'prices': [{'price': 0.99, 'currency': 'USD',
                        'method': PAYMENT_METHOD_ALL}],
            'redirect_url_onerror': 'http://test.mozilla.com/error',
            'redirect_url_onsuccess': 'http://test.mozilla.com/success',
            'transaction_uuid': 'test:status:{0}'.format(uuid.uuid4()),
            'user_uuid': 'test:user:{0}'.format(uuid.uuid4())
        })

        if not form.is_valid():
            log.info('Form not valid: {0}'.format(pk))
            raise ParseError

        try:
            data = prepare(form, obj.seller_product_bango.bango_id)
            view.client('CreateBillingConfiguration', data)
        except BangoImmediateError:
            # Cause the information about this record to be saved
            # by not raising an error.
            log.info('Bango error in check status: {0}'.format(pk))
            obj.status = STATUS_BAD
            obj.save()
            return

        log.info('All good: {0}'.format(pk))
        obj.status = STATUS_GOOD
        obj.save()
コード例 #2
0
ファイル: bango.py プロジェクト: WilliamRen/solitude
    def post(self, request, *args, **kwargs):
        view = BangoResource()
        form = CreateBangoNumberForm(request.DATA)
        if not form.is_valid():
            return self.form_errors(form)

        serial = SellerProductBangoSerializer(data=request.DATA)
        if not serial.is_valid():
            return Response(serial.errors, status=400)

        # Create the product.
        data = form.cleaned_data
        data['packageId'] = serial.object.seller_bango.package_id

        resp = view.client('CreateBangoNumber', data)

        product = SellerProductBango.objects.create(
            seller_bango=serial.object.seller_bango,
            seller_product=serial.object.seller_product,
            bango_id=resp.bango,
        )

        # Make it premium.
        data = request.DATA.copy()
        data['bango'] = resp.bango
        data['price'] = '0.99'
        data['currencyIso'] = 'USD'

        form = MakePremiumForm(data)
        if not form.is_valid():
            return self.form_errors(form)

        data = form.cleaned_data
        data['bango'] = resp.bango
        view.client('MakePremiumPerAccess', data)

        for rating, scheme in (['UNIVERSAL', 'GLOBAL'],
                               ['GENERAL', 'USA']):
            # Make it global and US rating.
            data.update({'rating': rating, 'ratingScheme': scheme})
            form = UpdateRatingForm(data)
            if not form.is_valid():
                return self.form_errors(form)

            data = form.cleaned_data
            data['bango'] = resp.bango
            view.client('UpdateRating', data)

        return Response(SellerProductBangoSerializer(product).data)
コード例 #3
0
ファイル: bango.py プロジェクト: elysium001/solitude
    def post(self, request, *args, **kwargs):
        view = BangoResource()
        form = CreateBangoNumberForm(request.DATA)
        if not form.is_valid():
            return self.form_errors(form)

        serial = SellerProductBangoSerializer(data=request.DATA)
        if not serial.is_valid():
            return Response(serial.errors, status=400)

        # Create the product.
        data = form.cleaned_data
        data['packageId'] = serial.object.seller_bango.package_id

        resp = view.client('CreateBangoNumber', data)

        product = SellerProductBango.objects.create(
            seller_bango=serial.object.seller_bango,
            seller_product=serial.object.seller_product,
            bango_id=resp.bango,
        )

        # Make it premium.
        data = request.DATA.copy()
        data['bango'] = resp.bango
        data['price'] = '0.99'
        data['currencyIso'] = 'USD'

        form = MakePremiumForm(data)
        if not form.is_valid():
            return self.form_errors(form)

        data = form.cleaned_data
        data['bango'] = resp.bango
        view.client('MakePremiumPerAccess', data)

        for rating, scheme in (['UNIVERSAL', 'GLOBAL'], ['GENERAL', 'USA']):
            # Make it global and US rating.
            data.update({'rating': rating, 'ratingScheme': scheme})
            form = UpdateRatingForm(data)
            if not form.is_valid():
                return self.form_errors(form)

            data = form.cleaned_data
            data['bango'] = resp.bango
            view.client('UpdateRating', data)

        return Response(SellerProductBangoSerializer(product).data)
コード例 #4
0
    def check_bango(self, obj):
        view = BangoResource()
        pk = obj.seller_product_bango.pk
        form = CreateBillingConfigurationForm({
            'seller_product_bango':
            (self.get_serializer().fields['seller_product_bango'].to_native(
                obj.seller_product_bango)),
            'pageTitle':
            'Test of app status',
            'prices': [{
                'price': 0.99,
                'currency': 'USD',
                'method': PAYMENT_METHOD_ALL
            }],
            'redirect_url_onerror':
            'http://test.mozilla.com/error',
            'redirect_url_onsuccess':
            'http://test.mozilla.com/success',
            'transaction_uuid':
            'test:status:{0}'.format(uuid.uuid4()),
            'user_uuid':
            'test:user:{0}'.format(uuid.uuid4())
        })

        if not form.is_valid():
            log.info('Form not valid: {0}'.format(pk))
            raise ParseError

        try:
            data = prepare(form, obj.seller_product_bango.bango_id)
            view.client('CreateBillingConfiguration', data)
        except BangoImmediateError:
            # Cause the information about this record to be saved
            # by not raising an error.
            log.info('Bango error in check status: {0}'.format(pk))
            obj.status = STATUS_BAD
            obj.save()
            return

        log.info('All good: {0}'.format(pk))
        obj.status = STATUS_GOOD
        obj.save()
コード例 #5
0
ファイル: login.py プロジェクト: WilliamRen/solitude
def login(request):
    """
    Retrieve package's infos from the package id
    to be able to later retrieve the authentication token
    given that we do not store any emails/persons ids.
    """
    view = BangoResource()
    form = GetEmailAddressesForm(request.DATA)
    if not form.is_valid():
        return view.form_errors(form)

    try:
        address = view.client('GetEmailAddresses', form.cleaned_data)
    except BangoError, exc:
        return view.client_errors(exc)
コード例 #6
0
ファイル: login.py プロジェクト: elysium001/solitude
def login(request):
    """
    Retrieve package's infos from the package id
    to be able to later retrieve the authentication token
    given that we do not store any emails/persons ids.
    """
    view = BangoResource()
    form = GetEmailAddressesForm(request.DATA)
    if not form.is_valid():
        return view.form_errors(form)

    try:
        address = view.client('GetEmailAddresses', form.cleaned_data)
    except BangoError, exc:
        return view.client_errors(exc)