create_transaction.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:occasions-server 作者: travisbloom 项目源码 文件源码
def mutate_and_get_payload(cls, input, context, info):
        if not context.user.stripe_user_id:
            error_msg = 'User tried to create a transaction before they have a stripe account'
            logger.warning(error_msg, extra={'request': context})
            raise MutationException(error_msg)
        formatted_input = convert_input_global_ids_to_pks(input)
        serializer = CreateTransactionSerializer(data=formatted_input, context={
            'user': context.user,
            'receiving_person_id': formatted_input.get('receiving_person_id')
        })
        serializer.is_valid(raise_exception=True)

        product = Product.objects.get(pk=formatted_input.get('product_id'))
        associated_event = AssociatedEvent.objects.get(pk=formatted_input.get('associated_event_id'))
        transaction = Transaction(
            **formatted_input,
            associated_event_date=associated_event.event.next_date,
            cost_usd=product.cost_usd,
            user=context.user)
        transaction.save()
        if settings.TESTING:
            mock_create_stripe_charge(
                user=context.user,
                transaction=transaction,
                request=context
            )
        else:
            create_stripe_charge(
                user=context.user,
                transaction=transaction,
                request=context
            )
        return CreateTransaction(transaction=transaction)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号