Skip to content

Commit e76ffb0

Browse files
authored
Hotfix session token (#51)
* Adds session handling changes * Removes outdated comment * Submodule change
1 parent b64aad5 commit e76ffb0

File tree

2 files changed

+16
-23
lines changed

2 files changed

+16
-23
lines changed

app.py

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,29 @@
1717
app = FastAPI()
1818

1919

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+
2033
@app.post("/tokenize_record")
2134
def tokenize_record(request: Request) -> responses.PlainTextResponse:
22-
session_token = general.get_ctx_token()
2335
tokenization_manager.tokenize_record(request.project_id, request.record_id)
24-
general.remove_and_refresh_session(session_token)
2536
return responses.PlainTextResponse(status_code=status.HTTP_200_OK)
2637

2738

2839
@app.post("/tokenize_calculated_attribute")
2940
def tokenize_calculated_attribute(
3041
request: AttributeTokenizationRequest,
3142
) -> responses.PlainTextResponse:
32-
session_token = general.get_ctx_token()
3343
task_manager.start_tokenization_task(
3444
request.project_id,
3545
request.user_id,
@@ -38,33 +48,28 @@ def tokenize_calculated_attribute(
3848
False,
3949
request.attribute_id,
4050
)
41-
general.remove_and_refresh_session(session_token)
4251
return responses.PlainTextResponse(status_code=status.HTTP_200_OK)
4352

4453

4554
@app.post("/tokenize_project")
4655
def tokenize_project(request: Request) -> responses.PlainTextResponse:
47-
session_token = general.get_ctx_token()
4856
task_manager.start_tokenization_task(
4957
request.project_id,
5058
request.user_id,
5159
enums.TokenizationTaskTypes.PROJECT.value,
5260
request.include_rats,
5361
request.only_uploaded_attributes,
5462
)
55-
general.remove_and_refresh_session(session_token)
5663
return responses.PlainTextResponse(status_code=status.HTTP_200_OK)
5764

5865

5966
# rats = record_attribute_token_statistics
6067
@app.post("/create_rats")
6168
def create_rats(request: RatsRequest) -> responses.PlainTextResponse:
62-
session_token = general.get_ctx_token()
6369
attribute_id = request.attribute_id if request.attribute_id != "" else None
6470
task_manager.start_rats_task(
6571
request.project_id, request.user_id, False, attribute_id
6672
)
67-
general.remove_and_refresh_session(session_token)
6873
return responses.PlainTextResponse(status_code=status.HTTP_200_OK)
6974

7075

@@ -79,9 +84,7 @@ def tokenize_project_no_use(project_id: str) -> responses.PlainTextResponse:
7984

8085
@app.post("/reupload_docbins")
8186
def reupload_docbins(request: ReuploadDocbins) -> responses.PlainTextResponse:
82-
session_token = general.get_ctx_token()
8387
util.reupload_docbins(request.project_id)
84-
general.remove_and_refresh_session(session_token)
8588
return responses.PlainTextResponse(status_code=status.HTTP_200_OK)
8689

8790

@@ -95,27 +98,17 @@ def save_tokenizer_as_pickle(request: SaveTokenizer) -> responses.PlainTextRespo
9598
def rework_markdown_file_content(
9699
org_id: str, file_id: str, step: str
97100
) -> responses.Response:
98-
session_token = general.get_ctx_token()
99101
try:
100102
r = markdown_file_content.rework_markdown_file_content(
101103
org_id, file_id, step.upper()
102104
)
103-
finally:
104-
general.remove_and_refresh_session(session_token)
105+
except Exception:
106+
pass
105107
if not r:
106108
return responses.Response(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR)
107109
return responses.Response(status_code=status.HTTP_200_OK)
108110

109111

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-
119112
@app.put("/config_changed")
120113
def config_changed() -> responses.PlainTextResponse:
121114
config_handler.refresh_config()

0 commit comments

Comments
 (0)