Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/api/serializers.py
Show All 35 Lines | def _decode_storage_enum(d): | ||||
return getattr(interface, d.pop("__type__"))(d["value"]) | return getattr(interface, d.pop("__type__"))(d["value"]) | ||||
ENCODERS: List[Tuple[type, str, Callable]] = [ | ENCODERS: List[Tuple[type, str, Callable]] = [ | ||||
(model.BaseModel, "model", _encode_model_object), | (model.BaseModel, "model", _encode_model_object), | ||||
(swhids.CoreSWHID, "core_swhid", str), | (swhids.CoreSWHID, "core_swhid", str), | ||||
(swhids.ExtendedSWHID, "extended_swhid", str), | (swhids.ExtendedSWHID, "extended_swhid", str), | ||||
(swhids.QualifiedSWHID, "qualified_swhid", str), | (swhids.QualifiedSWHID, "qualified_swhid", str), | ||||
# TODO: serialize this as "swhids_enum" when all peers support it in their DECODERS: | |||||
(swhids.ObjectType, "identifiers_enum", _encode_enum), | (swhids.ObjectType, "identifiers_enum", _encode_enum), | ||||
(model.MetadataAuthorityType, "model_enum", _encode_enum), | (model.MetadataAuthorityType, "model_enum", _encode_enum), | ||||
(interface.ListOrder, "storage_enum", _encode_enum), | (interface.ListOrder, "storage_enum", _encode_enum), | ||||
] | ] | ||||
DECODERS: Dict[str, Callable] = { | DECODERS: Dict[str, Callable] = { | ||||
"core_swhid": swhids.CoreSWHID.from_string, | "core_swhid": swhids.CoreSWHID.from_string, | ||||
"extended_swhid": swhids.ExtendedSWHID.from_string, | "extended_swhid": swhids.ExtendedSWHID.from_string, | ||||
"qualified_swhid": swhids.QualifiedSWHID.from_string, | "qualified_swhid": swhids.QualifiedSWHID.from_string, | ||||
"model": lambda d: getattr(model, d.pop("__type__")).from_dict(d), | "model": lambda d: getattr(model, d.pop("__type__")).from_dict(d), | ||||
"identifiers_enum": _decode_swhids_enum, | "identifiers_enum": _decode_swhids_enum, | ||||
"swhids_enum": _decode_swhids_enum, | |||||
"model_enum": _decode_model_enum, | "model_enum": _decode_model_enum, | ||||
"storage_enum": _decode_storage_enum, | "storage_enum": _decode_storage_enum, | ||||
} | } |