mirror of
https://github.com/yzernik/squeaknode.git
synced 2026-08-17 13:07:32 +02:00
Add get profile by address rpc method (#112)
This commit is contained in:
parent
8cf24ed8ff
commit
bd100c3006
6 changed files with 52 additions and 0 deletions
|
|
@ -353,6 +353,17 @@ def run():
|
|||
len(get_address_squeak_display_response.squeak_display_entries) == 2
|
||||
)
|
||||
|
||||
# Get squeak profile by address
|
||||
get_profile_by_address_response = admin_stub.GetSqueakProfileByAddress(
|
||||
squeak_admin_pb2.GetSqueakProfileByAddressRequest(
|
||||
address=squeak_profile_address
|
||||
)
|
||||
)
|
||||
print("Get profile by address response: " + str(get_profile_by_address_response))
|
||||
assert (
|
||||
get_profile_by_address_response.squeak_profile.profile_name == "bob"
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
logging.basicConfig()
|
||||
|
|
|
|||
|
|
@ -34,6 +34,10 @@ service SqueakAdmin {
|
|||
*/
|
||||
rpc GetSqueakProfile (GetSqueakProfileRequest) returns (GetSqueakProfileReply) {}
|
||||
|
||||
/** sqkadmin: `getsqueakprofilebyaddress`
|
||||
*/
|
||||
rpc GetSqueakProfileByAddress (GetSqueakProfileByAddressRequest) returns (GetSqueakProfileByAddressReply) {}
|
||||
|
||||
/** sqkadmin: `makesqueak`
|
||||
*/
|
||||
rpc MakeSqueak (MakeSqueakRequest) returns (MakeSqueakReply) {}
|
||||
|
|
@ -88,6 +92,16 @@ message GetSqueakProfileReply {
|
|||
SqueakProfile squeak_profile = 1;
|
||||
}
|
||||
|
||||
message GetSqueakProfileByAddressRequest {
|
||||
/// The address
|
||||
string address = 4;
|
||||
}
|
||||
|
||||
message GetSqueakProfileByAddressReply {
|
||||
/// The squeak profile
|
||||
SqueakProfile squeak_profile = 1;
|
||||
}
|
||||
|
||||
message SqueakProfile {
|
||||
/// The profile id
|
||||
int32 profile_id = 1;
|
||||
|
|
|
|||
|
|
@ -41,6 +41,11 @@ class SqueakAdminServerHandler(object):
|
|||
squeak_profile = self.squeak_node.get_squeak_profile(profile_id)
|
||||
return squeak_profile
|
||||
|
||||
def handle_get_squeak_profile_by_address(self, address):
|
||||
logger.info("Handle get squeak profile with address: {}".format(address))
|
||||
squeak_profile = self.squeak_node.get_squeak_profile_by_address(address)
|
||||
return squeak_profile
|
||||
|
||||
def handle_make_squeak(self, profile_id, content_str, replyto_hash):
|
||||
logger.info("Handle make squeak profile with id: {}".format(profile_id))
|
||||
inserted_squeak_hash = self.squeak_node.make_squeak(
|
||||
|
|
|
|||
|
|
@ -53,6 +53,14 @@ class SqueakAdminServerServicer(squeak_admin_pb2_grpc.SqueakAdminServicer):
|
|||
squeak_profile=squeak_profile_msg
|
||||
)
|
||||
|
||||
def GetSqueakProfileByAddress(self, request, context):
|
||||
address = request.address
|
||||
squeak_profile = self.handler.handle_get_squeak_profile_by_address(address)
|
||||
squeak_profile_msg = self._squeak_profile_to_message(squeak_profile)
|
||||
return squeak_admin_pb2.GetSqueakProfileReply(
|
||||
squeak_profile=squeak_profile_msg
|
||||
)
|
||||
|
||||
def MakeSqueak(self, request, context):
|
||||
profile_id = request.profile_id
|
||||
content_str = request.content
|
||||
|
|
|
|||
|
|
@ -117,6 +117,9 @@ class SqueakNode:
|
|||
def get_squeak_profile(self, profile_id):
|
||||
return self.postgres_db.get_profile(profile_id)
|
||||
|
||||
def get_squeak_profile_by_address(self, address):
|
||||
return self.postgres_db.get_profile_by_address(address)
|
||||
|
||||
def make_squeak(self, profile_id, content_str, replyto_hash):
|
||||
squeak_profile = self.postgres_db.get_profile(profile_id)
|
||||
squeak_maker = SqueakMaker(self.lightning_client)
|
||||
|
|
|
|||
|
|
@ -209,6 +209,17 @@ class PostgresDb:
|
|||
row = curs.fetchone()
|
||||
return self._parse_squeak_profile(row)
|
||||
|
||||
def get_profile_by_address(self, address):
|
||||
""" Get a profile by address. """
|
||||
sql = """
|
||||
SELECT * FROM profile
|
||||
WHERE address=%s;
|
||||
"""
|
||||
with self.get_cursor() as curs:
|
||||
curs.execute(sql, (address,))
|
||||
row = curs.fetchone()
|
||||
return self._parse_squeak_profile(row)
|
||||
|
||||
def get_unverified_block_squeaks(self):
|
||||
""" Get all squeaks without block header. """
|
||||
sql = """
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue