17
17
app = FastAPI ()
18
18
19
19
20
+ @app .middleware ("http" )
21
+ async def handle_db_session (request : Request , call_next ):
22
+ session_token = general .get_ctx_token ()
23
+
24
+ request .state .session_token = session_token
25
+ try :
26
+ response = await call_next (request )
27
+ finally :
28
+ general .remove_and_refresh_session (session_token )
29
+
30
+ return response
31
+
32
+
20
33
@app .post ("/tokenize_record" )
21
34
def tokenize_record (request : Request ) -> responses .PlainTextResponse :
22
- session_token = general .get_ctx_token ()
23
35
tokenization_manager .tokenize_record (request .project_id , request .record_id )
24
- general .remove_and_refresh_session (session_token )
25
36
return responses .PlainTextResponse (status_code = status .HTTP_200_OK )
26
37
27
38
28
39
@app .post ("/tokenize_calculated_attribute" )
29
40
def tokenize_calculated_attribute (
30
41
request : AttributeTokenizationRequest ,
31
42
) -> responses .PlainTextResponse :
32
- session_token = general .get_ctx_token ()
33
43
task_manager .start_tokenization_task (
34
44
request .project_id ,
35
45
request .user_id ,
@@ -38,33 +48,28 @@ def tokenize_calculated_attribute(
38
48
False ,
39
49
request .attribute_id ,
40
50
)
41
- general .remove_and_refresh_session (session_token )
42
51
return responses .PlainTextResponse (status_code = status .HTTP_200_OK )
43
52
44
53
45
54
@app .post ("/tokenize_project" )
46
55
def tokenize_project (request : Request ) -> responses .PlainTextResponse :
47
- session_token = general .get_ctx_token ()
48
56
task_manager .start_tokenization_task (
49
57
request .project_id ,
50
58
request .user_id ,
51
59
enums .TokenizationTaskTypes .PROJECT .value ,
52
60
request .include_rats ,
53
61
request .only_uploaded_attributes ,
54
62
)
55
- general .remove_and_refresh_session (session_token )
56
63
return responses .PlainTextResponse (status_code = status .HTTP_200_OK )
57
64
58
65
59
66
# rats = record_attribute_token_statistics
60
67
@app .post ("/create_rats" )
61
68
def create_rats (request : RatsRequest ) -> responses .PlainTextResponse :
62
- session_token = general .get_ctx_token ()
63
69
attribute_id = request .attribute_id if request .attribute_id != "" else None
64
70
task_manager .start_rats_task (
65
71
request .project_id , request .user_id , False , attribute_id
66
72
)
67
- general .remove_and_refresh_session (session_token )
68
73
return responses .PlainTextResponse (status_code = status .HTTP_200_OK )
69
74
70
75
@@ -79,9 +84,7 @@ def tokenize_project_no_use(project_id: str) -> responses.PlainTextResponse:
79
84
80
85
@app .post ("/reupload_docbins" )
81
86
def reupload_docbins (request : ReuploadDocbins ) -> responses .PlainTextResponse :
82
- session_token = general .get_ctx_token ()
83
87
util .reupload_docbins (request .project_id )
84
- general .remove_and_refresh_session (session_token )
85
88
return responses .PlainTextResponse (status_code = status .HTTP_200_OK )
86
89
87
90
@@ -95,27 +98,17 @@ def save_tokenizer_as_pickle(request: SaveTokenizer) -> responses.PlainTextRespo
95
98
def rework_markdown_file_content (
96
99
org_id : str , file_id : str , step : str
97
100
) -> responses .Response :
98
- session_token = general .get_ctx_token ()
99
101
try :
100
102
r = markdown_file_content .rework_markdown_file_content (
101
103
org_id , file_id , step .upper ()
102
104
)
103
- finally :
104
- general . remove_and_refresh_session ( session_token )
105
+ except Exception :
106
+ pass
105
107
if not r :
106
108
return responses .Response (status_code = status .HTTP_500_INTERNAL_SERVER_ERROR )
107
109
return responses .Response (status_code = status .HTTP_200_OK )
108
110
109
111
110
- @app .exception_handler (Exception )
111
- async def error_handler () -> responses .PlainTextResponse :
112
- general .rollback ()
113
- return responses .PlainTextResponse (
114
- status_code = status .HTTP_400_BAD_REQUEST ,
115
- content = "Oops! Something went wrong. Database gets a rollback..." ,
116
- )
117
-
118
-
119
112
@app .put ("/config_changed" )
120
113
def config_changed () -> responses .PlainTextResponse :
121
114
config_handler .refresh_config ()
0 commit comments