27 lines
1.0 KiB
Python
27 lines
1.0 KiB
Python
def ref_upgrade(ref: str) -> str:
|
|
"""This function converts older journey refs to the newer ones.
|
|
|
|
### WARNING
|
|
This function will be deprecated as soon as RMV updates their API
|
|
|
|
### Args:
|
|
* ref (`str`): Old ref like this one: `2|#VN#1#ST#1700765441#PI#0#ZI#160749#TA#0#DA#241123#1S#3004646#1T#2228#LS#3006907#LT#2354#PU#80#RT#1#CA#S30#ZE#S1#ZB# S1#PC#3#FR#3004646#FT#2228#TO#3006907#TT#2354#`
|
|
|
|
### Raises:
|
|
* `KeyError`: Some required keys are not found in the ref provided
|
|
|
|
### Returns:
|
|
* `str`: Ref of the new type
|
|
"""
|
|
|
|
items = "|".join(ref.split("|")[1:]).strip("#").split("#")
|
|
result = {items[i]: items[i + 1] for i in range(0, len(items), 2)}
|
|
|
|
for required in ["VN", "ZI", "TA", "PU"]:
|
|
if required not in result:
|
|
raise KeyError(
|
|
f"Required key {required} in the old journey ref is not found during conversion to the newer journey ref"
|
|
)
|
|
|
|
return "|".join([result["VN"], result["ZI"], result["TA"], result["PU"]])
|