Skip to content

Commit

Permalink
Merge pull request #79 from realifetech/CTD-2090-tdc---be-add-additon…
Browse files Browse the repository at this point in the history
…alfields-to

CTD-2090 add diff for additional fields
  • Loading branch information
tomrutherford-livestyled committed May 30, 2022
2 parents f737276 + f7fa775 commit 70f6d93
Show file tree
Hide file tree
Showing 3 changed files with 112 additions and 2 deletions.
2 changes: 1 addition & 1 deletion livestyled/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '1.3.5'
__version__ = '1.3.6'
100 changes: 100 additions & 0 deletions livestyled/models/tests/test_ticket.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
from livestyled.models.ticket import Ticket


def test_ticket_difference():
current = Ticket(
id=1,
status='ACTIVE',
external_ticket_id=12823463737,
seat='2B',
session_date='2022-10-10',
title='English Cup',
external_event_id=282848348,
price_code='GBP',
barcode=83736474849494,
sector_name='C',
section='20',
row='10',
price=20,
venue_name='Stamford Bridge',
can_share=False,
ticket_integration=None,
external_movement_id=None,
qr_code_url='http://test',
legacy_external_event_id=282848348,
venue_room='1A',
client_name='John Smith',
premium=False,
client_email='test@test.com',
share_link=None,
external_customer_ref=None,
entrance='12',
user_id=12,
created_at=None,
updated_at=None,
additional_fields=[{
'name': 'Ticket Type',
'value': 'FULL',
'sort': 1,
'dataType': 'string'
}, {
'name': 'Ticket Type 2',
'value': 'test',
'sort': 2,
'dataType': 'string'
}])

new = Ticket(
id=1,
status='ACTIVE',
external_ticket_id=12823463737,
seat='2B',
session_date='2022-10-10',
title='English Cup',
external_event_id=282848348,
price_code='GBP',
barcode=83736474849494,
sector_name='C',
section='20',
row='10',
price=20,
venue_name='Stamford Bridge',
can_share=False,
ticket_integration=None,
external_movement_id=None,
qr_code_url='http://test',
legacy_external_event_id=282848348,
venue_room='1A',
client_name='John Smith',
premium=False,
client_email='test@test.com',
share_link=None,
external_customer_ref=None,
entrance='12',
user_id=12,
created_at=None,
updated_at=None,
additional_fields=[{
'name': 'Ticket Type',
'value': 'FULL 1',
'sort': 1,
'dataType': 'string'
}])

difference = current.diff(new)

assert difference == {
'additional_fields': [
{
'name': 'Ticket Type',
'value': 'FULL 1',
'sort': 1,
'dataType': 'string'
}, {
'name': 'Ticket Type 2',
'value': 'test',
'sort': 2,
'dataType': 'string'
}
]
}
12 changes: 11 additions & 1 deletion livestyled/models/ticket.py
Original file line number Diff line number Diff line change
Expand Up @@ -383,5 +383,15 @@ def diff(self, other):
)
for field in fields:
if getattr(self, field) != getattr(other, field):
differences[field] = getattr(self, field)
if field == 'additional_fields':
additional_fields = []
for current in getattr(self, field):
for new in getattr(other, field):
if current['sort'] == new['sort']:
for key in current.keys():
current[key] = new[key]
additional_fields.append(current)
differences[field] = additional_fields
else:
differences[field] = getattr(self, field)
return differences

0 comments on commit 70f6d93

Please sign in to comment.