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
@@ -89,7 +89,7 @@ def find_user(*, # asterisk forces explicit naming of all arguments when calling
89
89
@staticmethod
90
90
def create_user (api_key : str , email : str , user_roles : Optional [Set [str ]] = None ) -> "User" :
91
91
get_structured_logger ("api_user_models" ).info ("creating user" , api_key = api_key )
92
- with Session () as session :
92
+ with WriteSession () as session :
93
93
new_user = User (api_key = api_key , email = email )
94
94
# TODO: we may need to populate 'created' field/column here, if the default
95
95
# specified above gets bound to the time of when that line of python was evaluated.
@@ -107,7 +107,7 @@ def update_user(
107
107
roles : Optional [Set [str ]]
108
108
) -> "User" :
109
109
get_structured_logger ("api_user_models" ).info ("updating user" , user_id = user .id , new_api_key = api_key )
110
- with Session () as session :
110
+ with WriteSession () as session :
111
111
user = User .find_user (user_id = user .id )
112
112
if user :
113
113
update_stmt = (
@@ -123,7 +123,7 @@ def update_user(
123
123
@staticmethod
124
124
def delete_user (user_id : int ) -> None :
125
125
get_structured_logger ("api_user_models" ).info ("deleting user" , user_id = user_id )
126
- with Session () as session :
126
+ with WriteSession () as session :
127
127
session .execute (delete (User ).where (User .id == user_id ))
128
128
session .commit ()
129
129
@@ -136,7 +136,7 @@ class UserRole(Base):
136
136
@staticmethod
137
137
def create_role (name : str ) -> None :
138
138
get_structured_logger ("api_user_models" ).info ("creating user role" , role = name )
139
- with Session () as session :
139
+ with WriteSession () as session :
140
140
session .execute (
141
141
f"""
142
142
INSERT INTO user_role (name)
0 commit comments