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)
create_transaction.py 文件源码
python
阅读 25
收藏 0
点赞 0
评论 0
评论列表
文章目录