Order API: Add send_email parameter to creating payments

This commit is contained in:
Raphael Michel
2020-11-26 16:57:52 +01:00
parent 956b6f43e4
commit 7ad46addee
3 changed files with 7 additions and 1 deletions

View File

@@ -956,6 +956,7 @@ class PaymentViewSet(CreateModelMixin, viewsets.ReadOnlyModelViewSet):
return order.payments.all()
def create(self, request, *args, **kwargs):
send_mail = request.data.get('send_email', True)
serializer = OrderPaymentCreateSerializer(data=request.data, context=self.get_serializer_context())
serializer.is_valid(raise_exception=True)
with transaction.atomic():
@@ -971,7 +972,8 @@ class PaymentViewSet(CreateModelMixin, viewsets.ReadOnlyModelViewSet):
user=self.request.user if self.request.user.is_authenticated else None,
auth=self.request.auth,
count_waitinglist=False,
force=request.data.get('force', False)
force=request.data.get('force', False),
send_mail=send_mail,
)
except Quota.QuotaExceededException:
pass

View File

@@ -433,12 +433,14 @@ def test_payment_detail(token_client, organizer, event, order):
@pytest.mark.django_db
def test_payment_create_confirmed(token_client, organizer, event, order):
djmail.outbox = []
resp = token_client.post('/api/v1/organizers/{}/events/{}/orders/{}/payments/'.format(
organizer.slug, event.slug, order.code
), format='json', data={
'provider': 'banktransfer',
'state': 'confirmed',
'amount': order.total,
'send_email': False,
'info': {
'foo': 'bar'
}
@@ -450,6 +452,7 @@ def test_payment_create_confirmed(token_client, organizer, event, order):
assert p.info_data == {'foo': 'bar'}
order.refresh_from_db()
assert order.status == Order.STATUS_PAID
assert len(djmail.outbox) == 0
@pytest.mark.django_db