11
11
from sqlmodel import Session
12
12
from routers import authentication , organization , role , user
13
13
from utils .auth import get_authenticated_user , get_optional_user , NeedsNewTokens , get_user_from_reset_token , PasswordValidationError
14
- from utils .db import User , get_session
14
+ from utils .models import User
15
+ from utils .db import get_session , set_up_db
15
16
16
17
17
18
logger = logging .getLogger ("uvicorn.error" )
21
22
@asynccontextmanager
22
23
async def lifespan (app : FastAPI ):
23
24
# Optional startup logic
25
+ set_up_db (drop = False )
24
26
yield
25
27
# Optional shutdown logic
26
28
@@ -63,9 +65,9 @@ async def needs_new_tokens_handler(request: Request, exc: NeedsNewTokens):
63
65
@app .exception_handler (PasswordValidationError )
64
66
async def password_validation_exception_handler (request : Request , exc : PasswordValidationError ):
65
67
return templates .TemplateResponse (
68
+ request ,
66
69
"errors/validation_error.html" ,
67
70
{
68
- "request" : request ,
69
71
"status_code" : 422 ,
70
72
"errors" : {"error" : exc .detail }
71
73
},
@@ -91,9 +93,9 @@ async def validation_exception_handler(request: Request, exc: RequestValidationE
91
93
errors [field_name ] = error ["msg" ]
92
94
93
95
return templates .TemplateResponse (
96
+ request ,
94
97
"errors/validation_error.html" ,
95
98
{
96
- "request" : request ,
97
99
"status_code" : 422 ,
98
100
"errors" : errors
99
101
},
@@ -109,8 +111,9 @@ async def http_exception_handler(request: Request, exc: StarletteHTTPException):
109
111
raise exc
110
112
111
113
return templates .TemplateResponse (
114
+ request ,
112
115
"errors/error.html" ,
113
- {"request" : request , " status_code" : exc .status_code , "detail" : exc .detail },
116
+ {"status_code" : exc .status_code , "detail" : exc .detail },
114
117
status_code = exc .status_code ,
115
118
)
116
119
@@ -122,9 +125,9 @@ async def general_exception_handler(request: Request, exc: Exception):
122
125
logger .error (f"Unhandled exception: { exc } " , exc_info = True )
123
126
124
127
return templates .TemplateResponse (
128
+ request ,
125
129
"errors/error.html" ,
126
130
{
127
- "request" : request ,
128
131
"status_code" : 500 ,
129
132
"detail" : "Internal Server Error"
130
133
},
@@ -150,7 +153,7 @@ async def read_home(
150
153
):
151
154
if params ["user" ]:
152
155
return RedirectResponse (url = "/dashboard" , status_code = 302 )
153
- return templates .TemplateResponse ("index.html" , params )
156
+ return templates .TemplateResponse (params [ "request" ], "index.html" , params )
154
157
155
158
156
159
@app .get ("/login" )
@@ -159,7 +162,7 @@ async def read_login(
159
162
):
160
163
if params ["user" ]:
161
164
return RedirectResponse (url = "/dashboard" , status_code = 302 )
162
- return templates .TemplateResponse ("authentication/login.html" , params )
165
+ return templates .TemplateResponse (params [ "request" ], "authentication/login.html" , params )
163
166
164
167
165
168
@app .get ("/register" )
@@ -168,7 +171,7 @@ async def read_register(
168
171
):
169
172
if params ["user" ]:
170
173
return RedirectResponse (url = "/dashboard" , status_code = 302 )
171
- return templates .TemplateResponse ("authentication/register.html" , params )
174
+ return templates .TemplateResponse (params [ "request" ], "authentication/register.html" , params )
172
175
173
176
174
177
@app .get ("/forgot_password" )
@@ -180,22 +183,22 @@ async def read_forgot_password(
180
183
return RedirectResponse (url = "/dashboard" , status_code = 302 )
181
184
params ["show_form" ] = show_form
182
185
183
- return templates .TemplateResponse ("authentication/forgot_password.html" , params )
186
+ return templates .TemplateResponse (params [ "request" ], "authentication/forgot_password.html" , params )
184
187
185
188
186
189
@app .get ("/about" )
187
190
async def read_about (params : dict = Depends (common_unauthenticated_parameters )):
188
- return templates .TemplateResponse ("about.html" , params )
191
+ return templates .TemplateResponse (params [ "request" ], "about.html" , params )
189
192
190
193
191
194
@app .get ("/privacy_policy" )
192
195
async def read_privacy_policy (params : dict = Depends (common_unauthenticated_parameters )):
193
- return templates .TemplateResponse ("privacy_policy.html" , params )
196
+ return templates .TemplateResponse (params [ "request" ], "privacy_policy.html" , params )
194
197
195
198
196
199
@app .get ("/terms_of_service" )
197
200
async def read_terms_of_service (params : dict = Depends (common_unauthenticated_parameters )):
198
- return templates .TemplateResponse ("terms_of_service.html" , params )
201
+ return templates .TemplateResponse (params [ "request" ], "terms_of_service.html" , params )
199
202
200
203
201
204
@app .get ("/reset_password" )
@@ -214,7 +217,7 @@ async def read_reset_password(
214
217
params ["email" ] = email
215
218
params ["token" ] = token
216
219
217
- return templates .TemplateResponse ("authentication/reset_password.html" , params )
220
+ return templates .TemplateResponse (params [ "request" ], "authentication/reset_password.html" , params )
218
221
219
222
220
223
# -- Authenticated Routes --
@@ -236,7 +239,7 @@ async def read_dashboard(
236
239
):
237
240
if not params ["user" ]:
238
241
return RedirectResponse (url = "/login" , status_code = status .HTTP_302_FOUND )
239
- return templates .TemplateResponse ("dashboard/index.html" , params )
242
+ return templates .TemplateResponse (params [ "request" ], "dashboard/index.html" , params )
240
243
241
244
242
245
@app .get ("/profile" )
@@ -246,7 +249,7 @@ async def read_profile(
246
249
if not params ["user" ]:
247
250
# Changed to 302
248
251
return RedirectResponse (url = "/login" , status_code = status .HTTP_302_FOUND )
249
- return templates .TemplateResponse ("users/profile.html" , params )
252
+ return templates .TemplateResponse (params [ "request" ], "users/profile.html" , params )
250
253
251
254
252
255
# -- Include Routers --
0 commit comments