3
3
from sqlalchemy .orm import relationship
4
4
from copy import deepcopy
5
5
6
- from .._db import Session
6
+ from .._db import Session , WriteSession
7
7
from delphi .epidata .common .logger import get_structured_logger
8
8
9
9
from typing import Set , Optional , List
@@ -87,7 +87,7 @@ def find_user(*, # asterisk forces explicit naming of all arguments when calling
87
87
@staticmethod
88
88
def create_user (api_key : str , email : str , user_roles : Optional [Set [str ]] = None ) -> "User" :
89
89
get_structured_logger ("api_user_models" ).info ("creating user" , api_key = api_key )
90
- with Session () as session :
90
+ with WriteSession () as session :
91
91
new_user = User (api_key = api_key , email = email )
92
92
# TODO: we may need to populate 'created' field/column here, if the default
93
93
# specified above gets bound to the time of when that line of python was evaluated.
@@ -105,7 +105,7 @@ def update_user(
105
105
roles : Optional [Set [str ]]
106
106
) -> "User" :
107
107
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 :
109
109
user = User .find_user (user_id = user .id )
110
110
if user :
111
111
update_stmt = (
@@ -121,7 +121,7 @@ def update_user(
121
121
@staticmethod
122
122
def delete_user (user_id : int ) -> None :
123
123
get_structured_logger ("api_user_models" ).info ("deleting user" , user_id = user_id )
124
- with Session () as session :
124
+ with WriteSession () as session :
125
125
session .execute (delete (User ).where (User .id == user_id ))
126
126
session .commit ()
127
127
@@ -134,7 +134,7 @@ class UserRole(Base):
134
134
@staticmethod
135
135
def create_role (name : str ) -> None :
136
136
get_structured_logger ("api_user_models" ).info ("creating user role" , role = name )
137
- with Session () as session :
137
+ with WriteSession () as session :
138
138
session .execute (
139
139
f"""
140
140
INSERT INTO user_role (name)
0 commit comments