-
-
Notifications
You must be signed in to change notification settings - Fork 131
Description
End of last year, TR introduced a feature to send gifts (e.g. some amount of stock) via email to be accepted by the recipient into their TR portfolio. This event is currently being ignored due to #161 (instead of causing an error), but it also means the event remains entirely unprocessed.
From what I can tell, there is no document related to the particular gifting event. (There are events for accepting the Terms & Conditions related to gifting, which are separate and already handled)
However, this is still a transaction that is missing from pytr export_transactions. This is because the event is not saved into the all_events.json which is used as input to the command.
Research notes
#161 skips the timelineDetailV2 for which there is not corresponding timeline event.
Lines 128 to 130 in f830c55
| event = self.timeline_events.get(response["id"], None) | |
| if event is None: | |
| raise UnsupportedEventError(response["id"]) |
However, it appears there is a corresponding timeline event, only the mapping we currently do based on the id does not match (at least in my case).
(Pdb) [ev for k, ev in self.timeline_events.items() if "Geschenk" in str(ev)]
[
{
"id": "316dbb9c-c94b-44f8-b3ea-3a90d27021b5",
"timestamp": "2024-12-14T17:55:19.707+0000",
"title": "ETF-Geschenk",
"icon": "logos/contacts-B-Orange/v2",
"badge": None,
"subtitle": "Angenommen",
"amount": {
"currency": "EUR",
"value": -26.0,
"fractionDigits": 2
},
"subAmount": None,
"status": "EXECUTED",
"action": {
"type": "timelineDetail",
"payload": "316dbb9c-c94b-44f8-b3ea-3a90d27021b5"
},
"eventType": "GIFTER_TRANSACTION",
"cashAccountNumber": None,
"hidden": False,
"deleted": False,
"source": "timelineTransaction"
}
]Corresponding timelineDetailV2
{
"id": "882bb1e7-8a14-42a3-b026-42a1d61d699a",
"sections": [
{
"title": "Du hast 25,00\xa0€ geschenkt",
"data": {
"icon": "logos/contacts-B-Orange/v2",
"timestamp": "2024-12-14T17:55:19.707+0000",
"status": "executed"
},
"type": "header"
},
{
"title": "Übersicht",
"data": [
{
"title": "Status",
"detail": {
"text": "Angenommen",
"functionalStyle": "EXECUTED",
"type": "status"
},
"style": "plain"
},
{
"title": "Asset",
"detail": {
"text": "FTSE All-World USD (Acc)",
"type": "text"
},
"style": "plain"
},
{
"title": "Lieferdatum",
"detail": {
"text": "14 Dec",
"type": "text"
},
"style": "plain"
}
],
"type": "table"
},
{
"title": "Status",
"steps": [
{
"leading": {
"avatar": {
"status": "completed",
"type": "bullet"
},
"connection": {
"order": "first"
}
},
"content": {
"title": "Geschenk geliefert",
"timestamp": "2024-12-14T17:55:19.799+0000"
}
},
{
"leading": {
"avatar": {
"status": "completed",
"type": "bullet"
},
"connection": {
"order": "last"
}
},
"content": {
"title": "Geschenk angenommen",
"timestamp": "2024-12-14T18:18:38.235+0000"
}
}
],
"type": "steps"
},
{
"title": "Transaktion",
"data": [
{
"title": "Geschenkbetrag",
"detail": {
"text": "25,00\xa0€",
"type": "text"
},
"style": "plain"
},
{
"title": "Gebühr",
"detail": {
"text": "1,00\xa0€",
"type": "text"
},
"style": "plain"
},
{
"title": "Summe",
"detail": {
"text": "26,00\xa0€",
"type": "text"
},
"style": "highlighted"
}
],
"type": "table"
},
{
"title": "Empfänger",
"data": [
{
"title": "REDACTED",
"detail": {
"icon": "logos/contacts-B-Orange/v2",
"style": "highlighted",
"type": "listItemAvatarDefault"
},
"style": "highlighted"
}
],
"type": "table"
},
{
"title": "Mehr",
"data": [
{
"title": "Brauchst du Hilfe?",
"detail": {
"icon": "logos/timeline_document/v2",
"action": {
"type": "deeplink",
"payload": {
"link": "traderepublic://help-center/node/016e1408-0073-4d01-928b-47db6993eb16?singleOnTop=false"
}
},
"style": "highlighted",
"type": "listItemAvatarDefault"
},
"style": "plain"
}
],
"type": "table"
},
{
"title": "",
"data": [
{
"title": "",
"detail": {
"icon": "",
"action": {
"type": "customerSupportChat",
"payload": {
"contextParams": {
"chat_flow_key": "NHC_0035_gifting_sent_a_gift",
"timelineEventId": "316dbb9c-c94b-44f8-b3ea-3a90d27021b5",
"giftId": "ffc93cd1-53ab-4492-881c-e27dcb8d9b38"
},
"contextCategory": "NHC"
}
},
"style": "highlighted",
"type": "listItemAvatarDefault"
},
"style": "plain"
}
],
"type": "table"
}
]
}Note how here the id of the detail and the timeline event do not match. Deeper in the detail, in the help section's payload.contextParams we can find the corresponding timelineEventId.
"contextParams": {
"chat_flow_key": "NHC_0035_gifting_sent_a_gift",
"timelineEventId": "316dbb9c-c94b-44f8-b3ea-3a90d27021b5",
"giftId": "ffc93cd1-53ab-4492-881c-e27dcb8d9b38"
},