Jak skonfigurować:
- utworzenie katalogu /app/mapping na hoście dockera
- do utworzonego katalogu nadać uprawnienia 660
- w compose w push service dodać linijkę w volumes /app/mapping:/app/mapping:z (do zrobienia po stronie Banqup - dostarczone w zgłoszeniu SAN-8)
-należy zrestartować kontener push service po tych zmianach
po zrestartowaniu kontenera push service należy przejść do katalogu /app/mapping i utworzyć podkatalogi dla każdego z banków z nazwą swiftCode (UPPER CASEM) oraz w każdym z podkatalogów utworzyć pliki o nazwie transactionMap.json
Przykład użycia:
Istnieją 3 funkcje:
isEmpty - sprawdza czy wartość jest pusta, jak tak to wstaw jakąś wartość z value
matchRegex - szuka podanego stringa w wartości (np. tytule transakcji) i jeśli występuje to wpisz wartość z value zamiast tego
selectRegex - możliwość wycięcia wartości z danego pola i wstawienia do value
np.[
{
"target": "Title",
"value": "Transakcja kartą @{data.Transaction.Title}@, @{Helpers.selectRegex(data.Account.AccountName, \"^.{0,5}\")}@",
"conditions": [
"Helpers.matchRegex(data.Transaction.Title, \"^DATA TRANSAKCJI: [0-9-]+$\")",
"data.Transaction.Title == \"Karta\"",
"Helpers.isEmpty(data.Transaction.Title)"
]
}
]Jeżeli zajdą warunki w conditions [] to w value wstaw to co w value - bedzie to złączenie stringów
"Transakcja kartą
jako stała wartość, potem wstawia tytuł z tytułu transakcji
@{data.Transaction.Title}@i potem wycina z AccountName fragment tekstu i
@{Helpers.selectRegex(data.Account.AccountName, \"^.{0,5}\")}@
W pliku /mapping/SWIFTCODE/transactionMap.json należy utworzyć jsona z mapowaniami i odpowiednimi warunkami, np.:
[{"target": "SenderAccount","value": "Uzupełniony SenderAccount w pushservice, a w bazie null","conditions": ["Helpers.isEmpty(data.Transaction.SenderAccount)"]}, {"target": "SenderAddress","value": "Szukamy stringa " pota to " w adresie sendera","conditions": ["Helpers.matchRegex(data.Transaction.SenderAddress, " ^ pota to ")"]}, {"target": "Title","value": "Tytuł pusty i dodatkowy warunek ? tr.Title : tr.TransactionType jak typ też pusty","conditions": ["Helpers.isEmpty(data.Transaction.Title) && Helpers.isEmpty(data.Transaction.TransactionType)"]}, {"target": "Title","value": "Waluta jest dobra","conditions": ["data.Transaction.Title == " WYMIANA WALUTY ""]},...// tu kolejne mapowania ...]