|
7 | 7 | from typing import List |
8 | 8 | import uuid |
9 | 9 |
|
| 10 | +from web3login.auth import to_checksum_address |
| 11 | + |
10 | 12 | from . import actions |
11 | 13 | from . import data |
12 | 14 | from . import exceptions |
@@ -79,6 +81,32 @@ def users_create_handler(args: argparse.Namespace) -> None: |
79 | 81 | session.close() |
80 | 82 |
|
81 | 83 |
|
| 84 | +def users_update_handler(args: argparse.Namespace) -> None: |
| 85 | + """ |
| 86 | + Handler for "user update" subcommand. |
| 87 | + """ |
| 88 | + if args.web3_address is None: |
| 89 | + raise Exception("No arguments specified to update") |
| 90 | + |
| 91 | + session = SessionLocal() |
| 92 | + try: |
| 93 | + query = session.query(User).filter(User.id == args.id) |
| 94 | + user = query.one_or_none() |
| 95 | + if user is None: |
| 96 | + raise Exception("User not found") |
| 97 | + |
| 98 | + if args.web3_address is not None: |
| 99 | + web3_address = to_checksum_address(args.web3_address) |
| 100 | + query.update({User.web3_address: web3_address}) |
| 101 | + |
| 102 | + session.commit() |
| 103 | + print_user(user) |
| 104 | + except Exception as e: |
| 105 | + print(e) |
| 106 | + finally: |
| 107 | + session.close() |
| 108 | + |
| 109 | + |
82 | 110 | def users_get_handler(args: argparse.Namespace) -> None: |
83 | 111 | """ |
84 | 112 | Handler for "users get" subcommand. |
@@ -723,6 +751,22 @@ def main() -> None: |
723 | 751 | ) |
724 | 752 | parser_users_create.set_defaults(func=users_create_handler) |
725 | 753 |
|
| 754 | + parser_users_update = subcommands_users.add_parser( |
| 755 | + "update", description="Update Brood user" |
| 756 | + ) |
| 757 | + parser_users_update.add_argument( |
| 758 | + "-i", |
| 759 | + "--id", |
| 760 | + required=True, |
| 761 | + help="ID of the user to update", |
| 762 | + ) |
| 763 | + parser_users_update.add_argument( |
| 764 | + "-w", |
| 765 | + "--web3_address", |
| 766 | + help="Set new web3 address", |
| 767 | + ) |
| 768 | + parser_users_update.set_defaults(func=users_update_handler) |
| 769 | + |
726 | 770 | parser_users_get = subcommands_users.add_parser("get", description="Get Brood user") |
727 | 771 | parser_users_get.add_argument( |
728 | 772 | "-u", |
|
0 commit comments