Skip to content

Commit 9682ec6

Browse files
committed
Update cli user web3 address
1 parent 3e0a3be commit 9682ec6

2 files changed

Lines changed: 45 additions & 0 deletions

File tree

brood/actions.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ def user_as_json_dict(user: User) -> Dict[str, Any]:
218218
"username": user.username,
219219
"email": user.email,
220220
"normalized_email": user.normalized_email,
221+
"web3_address": user.web3_address,
221222
"verified": user.verified,
222223
"created_at": str(user.created_at),
223224
"updated_at": str(user.updated_at),

brood/cli.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
from typing import List
88
import uuid
99

10+
from web3login.auth import to_checksum_address
11+
1012
from . import actions
1113
from . import data
1214
from . import exceptions
@@ -79,6 +81,32 @@ def users_create_handler(args: argparse.Namespace) -> None:
7981
session.close()
8082

8183

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+
82110
def users_get_handler(args: argparse.Namespace) -> None:
83111
"""
84112
Handler for "users get" subcommand.
@@ -723,6 +751,22 @@ def main() -> None:
723751
)
724752
parser_users_create.set_defaults(func=users_create_handler)
725753

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+
726770
parser_users_get = subcommands_users.add_parser("get", description="Get Brood user")
727771
parser_users_get.add_argument(
728772
"-u",

0 commit comments

Comments
 (0)