33from sqlalchemy .orm import relationship
44from copy import deepcopy
55
6- from .._db import Session
6+ from .._db import Session , WriteSession
77from delphi .epidata .common .logger import get_structured_logger
88
99from typing import Set , Optional , List
@@ -87,7 +87,7 @@ def find_user(*, # asterisk forces explicit naming of all arguments when calling
8787 @staticmethod
8888 def create_user (api_key : str , email : str , user_roles : Optional [Set [str ]] = None ) -> "User" :
8989 get_structured_logger ("api_user_models" ).info ("creating user" , api_key = api_key )
90- with Session () as session :
90+ with WriteSession () as session :
9191 new_user = User (api_key = api_key , email = email )
9292 # TODO: we may need to populate 'created' field/column here, if the default
9393 # specified above gets bound to the time of when that line of python was evaluated.
@@ -105,7 +105,7 @@ def update_user(
105105 roles : Optional [Set [str ]]
106106 ) -> "User" :
107107 get_structured_logger ("api_user_models" ).info ("updating user" , user_id = user .id , new_api_key = api_key )
108- with Session () as session :
108+ with WriteSession () as session :
109109 user = User .find_user (user_id = user .id )
110110 if user :
111111 update_stmt = (
@@ -121,7 +121,7 @@ def update_user(
121121 @staticmethod
122122 def delete_user (user_id : int ) -> None :
123123 get_structured_logger ("api_user_models" ).info ("deleting user" , user_id = user_id )
124- with Session () as session :
124+ with WriteSession () as session :
125125 session .execute (delete (User ).where (User .id == user_id ))
126126 session .commit ()
127127
@@ -134,7 +134,7 @@ class UserRole(Base):
134134 @staticmethod
135135 def create_role (name : str ) -> None :
136136 get_structured_logger ("api_user_models" ).info ("creating user role" , role = name )
137- with Session () as session :
137+ with WriteSession () as session :
138138 session .execute (
139139 f"""
140140 INSERT INTO user_role (name)
0 commit comments