1- # Copyright © 2020 Ingram Micro Inc. All rights reserved.
1+ # Copyright © 2021 Ingram Micro Inc. All rights reserved.
2+
3+ from dj_cqrs .correlation import get_correlation_id
24
35
46class TransportPayload :
@@ -11,23 +13,38 @@ class TransportPayload:
1113 :param instance_data: Serialized data of the instance that
1214 generates the event.
1315 :type instance_data: dict
14- :param instance_pk: Primary key of the instance
15- :param queue: Queue to syncronize , defaults to None
16+ :param instance_pk: Primary key of the instance.
17+ :param queue: Queue to synchronize , defaults to None.
1618 :type queue: str, optional
1719 :param previous_data: Previous values for fields tracked for changes,
18- defaults to None
20+ defaults to None.
1921 :type previous_data: dict, optional
22+ :param correlation_id: Correlation ID of process, where this payload is used.
23+ :type correlation_id: str, optional
2024 """
2125
22- def __init__ (self , signal_type , cqrs_id , instance_data , instance_pk , queue = None ,
23- previous_data = None ):
26+ def __init__ (
27+ self ,
28+ signal_type ,
29+ cqrs_id ,
30+ instance_data ,
31+ instance_pk ,
32+ queue = None ,
33+ previous_data = None ,
34+ correlation_id = None ,
35+ ):
2436 self .__signal_type = signal_type
2537 self .__cqrs_id = cqrs_id
2638 self .__instance_data = instance_data
2739 self .__instance_pk = instance_pk
2840 self .__queue = queue
2941 self .__previous_data = previous_data
3042
43+ if correlation_id :
44+ self .__correlation_id = correlation_id
45+ else :
46+ self .__correlation_id = get_correlation_id (signal_type , cqrs_id , instance_pk , queue )
47+
3148 @property
3249 def signal_type (self ):
3350 return self .__signal_type
@@ -52,6 +69,10 @@ def queue(self):
5269 def previous_data (self ):
5370 return self .__previous_data
5471
72+ @property
73+ def correlation_id (self ):
74+ return self .__correlation_id
75+
5576 def to_dict (self ):
5677 """
5778 Return the payload as a dictionary.
@@ -65,4 +86,5 @@ def to_dict(self):
6586 'instance_data' : self .__instance_data ,
6687 'previous_data' : self .__previous_data ,
6788 'instance_pk' : self .__instance_pk ,
89+ 'correlation_id' : self .__correlation_id ,
6890 }
0 commit comments