Skip to content

Commit 1a75ee1

Browse files
committed
fix: Add server checks for ticket price
1 parent 250b920 commit 1a75ee1

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

app/api/tickets.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@
2020
from app.api.helpers.exceptions import ConflictException, MethodNotAllowed, UnprocessableEntity
2121
from app.api.helpers.db import get_count
2222

23+
24+
def validate_ticket_price(data):
25+
if data.get('type') != 'free' and int(data.get('price')) <= 0:
26+
raise UnprocessableEntity(
27+
{'price': data.get('price')}, "Price of a paid/donation ticket must be greater than zero")
28+
29+
2330
class TicketListPost(ResourceList):
2431
"""
2532
Create and List Tickets
@@ -59,6 +66,10 @@ def before_create_object(self, data, view_kwargs):
5966
if not event.is_payment_enabled():
6067
raise UnprocessableEntity(
6168
{'event_id': data['event']}, "Event having paid ticket must have a payment method")
69+
if data.get('price') and data.get('type'):
70+
validate_ticket_price(data)
71+
else:
72+
raise UnprocessableEntity({}, "Type/price of ticket is missing")
6273

6374
schema = TicketSchema
6475
methods = ['POST', ]
@@ -182,6 +193,7 @@ def before_update_object(self, ticket, data, view_kwargs):
182193
raise UnprocessableEntity(
183194
{'event_id': ticket.event.id}, "Event having paid ticket must have a payment method")
184195

196+
validate_ticket_price(data)
185197
decorators = (api.has_permission('is_coorganizer', fetch='event_id',
186198
fetch_as="event_id", model=Ticket, methods="PATCH,DELETE"),)
187199
schema = TicketSchema

0 commit comments

Comments
 (0)