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()
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)
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)
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()
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)
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)