diff --git a/squeaknode/admin/util.py b/squeaknode/admin/messages.py similarity index 91% rename from squeaknode/admin/util.py rename to squeaknode/admin/messages.py index 66982a20..79bedaf7 100644 --- a/squeaknode/admin/util.py +++ b/squeaknode/admin/messages.py @@ -7,6 +7,7 @@ from squeaknode.core.received_offer_with_peer import ReceivedOfferWithPeer from squeaknode.core.received_payment_summary import ReceivedPaymentSummary from squeaknode.core.sent_payment_summary import SentPaymentSummary from squeaknode.core.squeak_entry_with_profile import SqueakEntryWithProfile +from squeaknode.core.squeak_profile import SqueakProfile from squeaknode.core.util import get_hash @@ -16,31 +17,21 @@ logger = logging.getLogger(__name__) DEFAULT_PROFILE_IMAGE = load_default_profile_image() -def squeak_entry_to_message(squeak_entry_with_profile: SqueakEntryWithProfile): - if squeak_entry_with_profile is None: - return None +def squeak_entry_to_message(squeak_entry_with_profile: SqueakEntryWithProfile) -> squeak_admin_pb2.SqueakDisplayEntry: squeak_entry = squeak_entry_with_profile.squeak_entry squeak = squeak_entry.squeak block_header = squeak_entry.block_header is_unlocked = squeak.HasDecryptionKey() content_str = squeak.GetDecryptedContentStr() if is_unlocked else None - squeak_profile = squeak_entry_with_profile.squeak_profile - # author_name = squeak_profile.profile_name if squeak_profile else None is_reply = squeak.is_reply reply_to = squeak.hashReplySqk.hex() if is_reply else None - # if squeak_profile: - # profile_image = squeak_profile.profile_image or DEFAULT_PROFILE_IMAGE - # else: - # profile_image = DEFAULT_PROFILE_IMAGE - # # has_custom_profile_image = squeak_profile.profile_image is not None - # image_base64_str = bytes_to_base64_string(profile_image) author_address = str(squeak.GetAddress()) + squeak_profile = squeak_entry_with_profile.squeak_profile + is_author_known = False + profile_msg = None if squeak_profile is not None: is_author_known = True profile_msg = squeak_profile_to_message(squeak_profile) - else: - is_author_known = False - profile_msg = None return squeak_admin_pb2.SqueakDisplayEntry( squeak_hash=get_hash(squeak).hex(), is_unlocked=squeak.HasDecryptionKey(), @@ -56,9 +47,7 @@ def squeak_entry_to_message(squeak_entry_with_profile: SqueakEntryWithProfile): ) -def squeak_profile_to_message(squeak_profile): - if squeak_profile is None: - return None +def squeak_profile_to_message(squeak_profile: SqueakProfile) -> squeak_admin_pb2.SqueakProfile: has_private_key = squeak_profile.private_key is not None profile_image = squeak_profile.profile_image or DEFAULT_PROFILE_IMAGE has_custom_profile_image = squeak_profile.profile_image is not None diff --git a/squeaknode/admin/squeak_admin_server_handler.py b/squeaknode/admin/squeak_admin_server_handler.py index 9f506b83..30ca076c 100644 --- a/squeaknode/admin/squeak_admin_server_handler.py +++ b/squeaknode/admin/squeak_admin_server_handler.py @@ -2,16 +2,16 @@ import logging import sys from proto import squeak_admin_pb2 +from squeaknode.admin.messages import offer_entry_to_message +from squeaknode.admin.messages import payment_summary_to_message +from squeaknode.admin.messages import received_payments_to_message +from squeaknode.admin.messages import sent_offer_to_message +from squeaknode.admin.messages import sent_payment_with_peer_to_message +from squeaknode.admin.messages import squeak_entry_to_detail_message +from squeaknode.admin.messages import squeak_entry_to_message +from squeaknode.admin.messages import squeak_peer_to_message +from squeaknode.admin.messages import squeak_profile_to_message from squeaknode.admin.profile_image_util import base64_string_to_bytes -from squeaknode.admin.util import offer_entry_to_message -from squeaknode.admin.util import payment_summary_to_message -from squeaknode.admin.util import received_payments_to_message -from squeaknode.admin.util import sent_offer_to_message -from squeaknode.admin.util import sent_payment_with_peer_to_message -from squeaknode.admin.util import squeak_entry_to_detail_message -from squeaknode.admin.util import squeak_entry_to_message -from squeaknode.admin.util import squeak_peer_to_message -from squeaknode.admin.util import squeak_profile_to_message from squeaknode.core.squeak_controller import SqueakController from squeaknode.lightning.lnd_lightning_client import LNDLightningClient from squeaknode.sync.squeak_sync_controller import SqueakSyncController @@ -145,7 +145,7 @@ class SqueakAdminServerHandler(object): logger.info("Handle get squeak profile with id: {}".format(profile_id)) squeak_profile = self.squeak_controller.get_squeak_profile(profile_id) if squeak_profile is None: - return None + raise Exception("Profile not found.") squeak_profile_msg = squeak_profile_to_message(squeak_profile) return squeak_admin_pb2.GetSqueakProfileReply( squeak_profile=squeak_profile_msg, @@ -157,6 +157,8 @@ class SqueakAdminServerHandler(object): "Handle get squeak profile with address: {}".format(address)) squeak_profile = self.squeak_controller.get_squeak_profile_by_address( address) + if squeak_profile is None: + raise Exception("Profile not found.") squeak_profile_msg = squeak_profile_to_message(squeak_profile) return squeak_admin_pb2.GetSqueakProfileByAddressReply( squeak_profile=squeak_profile_msg @@ -167,6 +169,8 @@ class SqueakAdminServerHandler(object): logger.info("Handle get squeak profile with name: {}".format(name)) squeak_profile = self.squeak_controller.get_squeak_profile_by_name( name) + if squeak_profile is None: + raise Exception("Profile not found.") squeak_profile_msg = squeak_profile_to_message(squeak_profile) return squeak_admin_pb2.GetSqueakProfileByNameReply( squeak_profile=squeak_profile_msg @@ -273,7 +277,11 @@ class SqueakAdminServerHandler(object): squeak_entry_with_profile = ( self.squeak_controller.get_squeak_entry_with_profile(squeak_hash) ) - display_message = squeak_entry_to_message(squeak_entry_with_profile) + if squeak_entry_with_profile is None: + display_message = None + else: + display_message = squeak_entry_to_message( + squeak_entry_with_profile) return squeak_admin_pb2.GetSqueakDisplayReply( squeak_display_entry=display_message )