frostfs-sdk-python/frostfs_sdk/models/mappers/owner_id_mapper.py
Ilyas Niyazov 297e107b10 [#3] Added generate proto script create container method
Signed-off-by: Ilyas Niyazov <i.niyazov@yadro.com>
2025-03-25 11:13:48 +03:00

32 lines
970 B
Python

from base58 import b58encode
from frostfs_sdk.models.dto.owner_id import OwnerId
from frostfs_sdk.protos.models.refs import types_pb2 as types_pb2_refs
class OwnerIdMapper:
@staticmethod
def to_grpc_message(owner_id: OwnerId) -> types_pb2_refs.OwnerID:
"""
Converts OwnerId DTO to gRPC message
"""
if not owner_id:
return None
return types_pb2_refs.OwnerID(
value=owner_id.to_hash(),
)
@staticmethod
def to_model(owner_id_grpc: types_pb2_refs.OwnerID) -> OwnerId:
"""
Converts gRPC message to OwnerId DTO
"""
if not owner_id_grpc or owner_id_grpc.ByteSize() == 0:
return None
try:
return OwnerId(
value=b58encode(owner_id_grpc.value).decode('utf-8')
)
except Exception as e:
raise ValueError(f"Failed to encode Base58 value: {owner_id_grpc.value}")