From 9849ea58cf9a64320202522087e57e5ddf26646f Mon Sep 17 00:00:00 2001 From: Moul <moul@moul.re> Date: Sat, 13 Mar 2021 13:25:09 +0100 Subject: [PATCH] [feat] #314: cert: Implement display option The generated document is displayed In case the option is passed, display the table and the generated document Use send_doc_confirmation() --- silkaj/cert.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/silkaj/cert.py b/silkaj/cert.py index 17ba70cf..f889b34e 100644 --- a/silkaj/cert.py +++ b/silkaj/cert.py @@ -24,19 +24,19 @@ from duniterpy.documents import BlockUID, block_uid, Identity, Certification from silkaj.auth import auth_method from silkaj.tools import message_exit, coroutine -from silkaj.tui import convert_time, display_pubkey_and_checksum from silkaj.network_tools import ClientInstance from silkaj.blockchain_tools import BlockchainParams, HeadBlock from silkaj.license import license_approval -from silkaj import wot +from silkaj import wot, tui from silkaj.constants import SUCCESS_EXIT_STATUS from silkaj.crypto_tools import is_pubkey_and_check @click.command("cert", help="Send certification") @click.argument("uid_pubkey_to_certify") +@click.pass_context @coroutine -async def send_certification(uid_pubkey_to_certify): +async def send_certification(ctx, uid_pubkey_to_certify): client = ClientInstance().client checked_pubkey = is_pubkey_and_check(uid_pubkey_to_certify) @@ -69,7 +69,7 @@ async def send_certification(uid_pubkey_to_certify): # ĞT: 0<–>4.8m - 4.8m + 12.5d renewable = cert["expiresIn"] - params["sigValidity"] + params["sigReplay"] if renewable > 0: - renewable_date = convert_time(time() + renewable, "date") + renewable_date = tui.convert_time(time() + renewable, "date") message_exit("Certification renewable the " + renewable_date) # Check if the certification is already in the pending certifications @@ -84,7 +84,7 @@ async def send_certification(uid_pubkey_to_certify): # Certification confirmation await certification_confirmation( - issuer, issuer_pubkey, pubkey_to_certify, idty_to_certify + ctx, issuer, issuer_pubkey, pubkey_to_certify, idty_to_certify ) identity = Identity( @@ -105,6 +105,10 @@ async def send_certification(uid_pubkey_to_certify): signature="", ) + if ctx.obj["DISPLAY_DOCUMENT"]: + click.echo(certification.signed_raw(), nl=False) + await tui.send_doc_confirmation("certification") + # Sign document certification.sign([key]) @@ -120,7 +124,7 @@ async def send_certification(uid_pubkey_to_certify): async def certification_confirmation( - issuer, issuer_pubkey, pubkey_to_certify, idty_to_certify + ctx, issuer, issuer_pubkey, pubkey_to_certify, idty_to_certify ): cert = list() cert.append(["Cert", "Issuer", "–>", "Recipient: Published: #block-hash date"]) @@ -129,22 +133,21 @@ async def certification_confirmation( block_uid_idty = block_uid(idty_timestamp) block = await client(bma.blockchain.block, block_uid_idty.number) block_uid_date = ( - ": #" + idty_timestamp[:15] + "… " + convert_time(block["time"], "all") + ": #" + idty_timestamp[:15] + "… " + tui.convert_time(block["time"], "all") ) cert.append(["ID", issuer["uid"], "–>", idty_to_certify["uid"] + block_uid_date]) cert.append( [ "Pubkey", - display_pubkey_and_checksum(issuer_pubkey), + tui.display_pubkey_and_checksum(issuer_pubkey), "–>", - display_pubkey_and_checksum(pubkey_to_certify), + tui.display_pubkey_and_checksum(pubkey_to_certify), ] ) params = await BlockchainParams().params - cert_begins = convert_time(time(), "date") - cert_ends = convert_time(time() + params["sigValidity"], "date") + cert_begins = tui.convert_time(time(), "date") + cert_ends = tui.convert_time(time() + params["sigValidity"], "date") cert.append(["Valid", cert_begins, "—>", cert_ends]) click.echo(tabulate(cert, tablefmt="fancy_grid")) - if not click.confirm("Do you confirm sending this certification?"): - await client.close() - sys.exit(SUCCESS_EXIT_STATUS) + if not ctx.obj["DISPLAY_DOCUMENT"]: + await tui.send_doc_confirmation("certification") -- GitLab