Skip to content

Commit 1c926e7

Browse files
committed
address TODOs pointed out in review ++
TODOs done: raise Exception when trying to update non-existent User, return UserRole on creation. also use more appropriate reciever for static method call, and expand comment on static vs bound methods in User.
1 parent 3bdd09f commit 1c926e7

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

src/server/admin/models.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ def _assign_roles(user: "User", roles: Optional[Set[str]], session) -> None:
5555
db_user = session.query(User).filter(User.id == user.id).first()
5656
# TODO: would it be sufficient to use the passed-in `user` instead of looking up this `db_user`?
5757
# or even use this as a bound method instead of a static??
58+
# same goes for `update_user()` and `delete_user()` below...
5859
if roles:
5960
db_user.roles = session.query(UserRole).filter(UserRole.name.in_(roles)).all()
6061
else:
@@ -97,16 +98,15 @@ def update_user(
9798
) -> "User":
9899
get_structured_logger("api_user_models").info("updating user", user_id=user.id, new_api_key=api_key)
99100
user = User.find_user(user_id=user.id, session=session)
100-
if user:
101-
update_stmt = (
102-
update(User)
103-
.where(User.id == user.id)
104-
.values(api_key=api_key, email=email)
105-
)
106-
session.execute(update_stmt)
107-
return User._assign_roles(user, roles, session)
108-
# TODO: else: raise Exception() ??
109-
return None
101+
if not user:
102+
raise Exception('user not found')
103+
update_stmt = (
104+
update(User)
105+
.where(User.id == user.id)
106+
.values(api_key=api_key, email=email)
107+
)
108+
session.execute(update_stmt)
109+
return User._assign_roles(user, roles, session)
110110

111111
@staticmethod
112112
@default_session(WriteSession)
@@ -135,7 +135,7 @@ def create_role(name: str, session) -> None:
135135
WHERE name='{name}')
136136
""")
137137
session.commit()
138-
# TODO: look up and return new role
138+
return session.query(UserRole).filter(UserRole.name == name).first()
139139

140140
@staticmethod
141141
@default_session(Session)

src/server/endpoints/admin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def _detail(user_id: int):
9494
if user_check and user_check.id != user.id:
9595
flags["banner"] = "Could not update user; same api_key and/or email already exists."
9696
else:
97-
user = user.update_user(
97+
user = User.update_user(
9898
user=user,
9999
api_key=request.values["api_key"],
100100
email=request.values["email"],

0 commit comments

Comments
 (0)