Skip to content
This repository was archived by the owner on Jun 1, 2023. It is now read-only.

Commit fcacf7d

Browse files
committed
Fixed link list serialization/deserialiation.
1 parent 15be550 commit fcacf7d

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

src/oidcmsg/oidc/__init__.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1018,7 +1018,7 @@ class Link(Message):
10181018
}
10191019

10201020

1021-
def link_deser(val, sformat="urlencoded"):
1021+
def _l_deser(val, sformat):
10221022
if isinstance(val, Link):
10231023
return val
10241024
elif sformat in ["dict", "json"]:
@@ -1028,7 +1028,14 @@ def link_deser(val, sformat="urlencoded"):
10281028
return Link().deserialize(val, sformat)
10291029

10301030

1031-
def msg_ser(inst, sformat, lev=0):
1031+
def link_deser(val, sformat="urlencoded"):
1032+
if isinstance(val, list):
1033+
return [_l_deser(v, sformat) for v in val]
1034+
else:
1035+
return _l_deser(val, sformat)
1036+
1037+
1038+
def link_ser(inst, sformat, lev=0):
10321039
if sformat in ["urlencoded", "json"]:
10331040
if isinstance(inst, dict):
10341041
if sformat == 'json':
@@ -1054,7 +1061,14 @@ def msg_ser(inst, sformat, lev=0):
10541061
return res
10551062

10561063

1057-
REQUIRED_LINKS = ([Link], True, msg_ser, link_deser, False)
1064+
def link_list_ser(inst, sformat, lev=0):
1065+
if isinstance(inst, list):
1066+
return [link_ser(v, sformat) for v in inst]
1067+
else:
1068+
return link_ser(inst, sformat)
1069+
1070+
1071+
REQUIRED_LINKS = ([Link], True, link_list_ser, link_deser, False)
10581072

10591073

10601074
class JRD(ResponseMessage):

0 commit comments

Comments
 (0)