Skip to content

Commit 520af73

Browse files
jomuelLefterisJP
authored andcommitted
Create wrapped and unwrapped versions of internal event getter methods
and use them where appropriate [ci integration]
1 parent e132ace commit 520af73

File tree

5 files changed

+48
-26
lines changed

5 files changed

+48
-26
lines changed

raiden/api/python.py

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -673,7 +673,7 @@ def transfer_async(
673673
)
674674
return async_result
675675

676-
def get_raiden_events_payment_history(
676+
def get_raiden_events_payment_history_with_timestamps(
677677
self,
678678
token_address: typing.TokenAddress = None,
679679
target_address: typing.Address = None,
@@ -701,11 +701,11 @@ def get_raiden_events_payment_history(
701701

702702
events = [
703703
event
704-
for event in self.raiden.wal.storage.get_events(
704+
for event in self.raiden.wal.storage.get_events_with_timestamps(
705705
limit=limit,
706706
offset=offset,
707707
) if event_filter_for_payments(
708-
event,
708+
event.wrapped_event,
709709
self.address,
710710
token_network_identifier,
711711
target_address,
@@ -714,8 +714,24 @@ def get_raiden_events_payment_history(
714714

715715
return events
716716

717-
def get_raiden_internal_events(self, limit: int = None, offset: int = None):
718-
return self.raiden.wal.storage.get_events(limit=limit, offset=offset)
717+
def get_raiden_events_payment_history(
718+
self,
719+
token_address: typing.TokenAddress = None,
720+
target_address: typing.Address = None,
721+
limit: int = None,
722+
offset: int = None,
723+
):
724+
timestamped_events = self.get_raiden_events_payment_history_with_timestamps(
725+
token_address,
726+
target_address,
727+
limit,
728+
offset,
729+
)
730+
731+
return [event.wrapped_event for event in timestamped_events]
732+
733+
def get_raiden_internal_events_with_timestamps(self, limit: int = None, offset: int = None):
734+
return self.raiden.wal.storage.get_events_with_timestamps(limit=limit, offset=offset)
719735

720736
transfer = transfer_and_wait
721737

raiden/api/rest.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -784,7 +784,7 @@ def get_blockchain_events_token_network(
784784
except (InvalidBlockNumberInput, InvalidAddress) as e:
785785
return api_error(str(e), status_code=HTTPStatus.CONFLICT)
786786

787-
def get_raiden_events_payment_history(
787+
def get_raiden_events_payment_history_with_timestamps(
788788
self,
789789
token_address: typing.TokenAddress = None,
790790
target_address: typing.Address = None,
@@ -797,7 +797,7 @@ def get_raiden_events_payment_history(
797797
target_address=optional_address_to_string(target_address),
798798
)
799799
try:
800-
raiden_service_result = self.raiden_api.get_raiden_events_payment_history(
800+
service_result = self.raiden_api.get_raiden_events_payment_history_with_timestamps(
801801
token_address=token_address,
802802
target_address=target_address,
803803
limit=limit,
@@ -807,23 +807,26 @@ def get_raiden_events_payment_history(
807807
return api_error(str(e), status_code=HTTPStatus.CONFLICT)
808808

809809
result = []
810-
for event in raiden_service_result:
811-
if isinstance(event, EventPaymentSentSuccess):
810+
for event in service_result:
811+
if isinstance(event.wrapped_event, EventPaymentSentSuccess):
812812
serialized_event = self.sent_success_payment_schema.dump(event)
813-
elif isinstance(event, EventPaymentSentFailed):
813+
elif isinstance(event.wrapped_event, EventPaymentSentFailed):
814814
serialized_event = self.failed_payment_schema.dump(event)
815-
elif isinstance(event, EventPaymentReceivedSuccess):
815+
elif isinstance(event.wrapped_event, EventPaymentReceivedSuccess):
816816
serialized_event = self.received_success_payment_schema.dump(event)
817817
else:
818-
log.warning('Unexpected event', unexpected_event=event)
818+
log.warning('Unexpected event', unexpected_event=event.wrapped_event)
819819

820820
result.append(serialized_event.data)
821821
return api_response(result=result)
822822

823-
def get_raiden_internal_events(self, limit, offset):
823+
def get_raiden_internal_events_with_timestamps(self, limit, offset):
824824
return [
825825
str(e)
826-
for e in self.raiden_api.raiden.wal.storage.get_events(limit=limit, offset=offset)
826+
for e in self.raiden_api.raiden.wal.storage.get_events_with_timestamps(
827+
limit=limit,
828+
offset=offset,
829+
)
827830
]
828831

829832
def get_blockchain_events_channel(

raiden/api/v1/resources.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ class RaidenInternalEventsResource(BaseResource):
149149

150150
@use_kwargs(get_schema, locations=('query',))
151151
def get(self, token_address, partner_address=None, limit=None, offset=None):
152-
return self.rest_api.get_raiden_internal_events(
152+
return self.rest_api.get_raiden_internal_events_with_timestamps(
153153
token_address=token_address,
154154
partner_address=partner_address,
155155
limit=limit,
@@ -218,7 +218,7 @@ def get(
218218
limit: int = None,
219219
offset: int = None,
220220
):
221-
return self.rest_api.get_raiden_events_payment_history(
221+
return self.rest_api.get_raiden_events_payment_history_with_timestamps(
222222
token_address=token_address,
223223
target_address=target_address,
224224
limit=limit,

raiden/storage/sqlite.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -176,12 +176,7 @@ def get_statechanges_by_identifier(self, from_identifier, to_identifier):
176176

177177
return result
178178

179-
def _wrap_event(self, event, log_time):
180-
if isinstance(event, EventWithLogTime):
181-
return TimestampedEvent(event, log_time)
182-
return event
183-
184-
def get_events(self, limit: int = None, offset: int = None):
179+
def _query_events(self, limit: int = None, offset: int = None):
185180
if limit is not None and (not isinstance(limit, int) or limit < 0):
186181
raise InvalidNumberInput('limit must be a positive integer')
187182

@@ -201,11 +196,19 @@ def get_events(self, limit: int = None, offset: int = None):
201196
(limit, offset),
202197
)
203198

199+
return cursor.fetchall()
200+
201+
def get_events_with_timestamps(self, limit: int = None, offset: int = None):
202+
entries = self._query_events(limit, offset)
204203
result = [
205-
self._wrap_event(self.serializer.deserialize(entry[0]), entry[1])
206-
for entry in cursor.fetchall()
204+
TimestampedEvent(self.serializer.deserialize(entry[0]), entry[1])
205+
for entry in entries
207206
]
208207
return result
209208

209+
def get_events(self, limit: int = None, offset: int = None):
210+
entries = self._query_events(limit, offset)
211+
return [self.serializer.deserialize(entry[0]) for entry in entries]
212+
210213
def __del__(self):
211214
self.conn.close()

raiden/tests/unit/test_wal.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ def test_write_read_events():
168168
'2018-08-31T17:38:00.000',
169169
)
170170

171-
previous_events = wal.storage.get_events()
171+
previous_events = wal.storage.get_events_with_timestamps()
172172

173173
log_time = '2018-09-07T20:02:35.0000'
174174
state_change_id = wal.storage.write_state_change('statechangedata')
@@ -178,7 +178,7 @@ def test_write_read_events():
178178
log_time,
179179
)
180180

181-
new_events = wal.storage.get_events()
181+
new_events = wal.storage.get_events_with_timestamps()
182182
assert len(previous_events) + 1 == len(new_events)
183183

184184
latest_event = new_events[-1]

0 commit comments

Comments
 (0)