fix: DB接続エラーのエラーメッセージを出し分け

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2023-06-19 16:09:36 +09:00
parent ca26e78b59
commit d56790379b
2 changed files with 7 additions and 4 deletions

View File

@ -7,7 +7,7 @@ from starlette import status
from src.depends.auth import (check_session_expired, get_current_session,
verify_session)
from src.error.exceptions import UnexpectedException
from src.error.exceptions import DBException, UnexpectedException
from src.logging.get_logger import get_logger
from src.system_var import constants, environment
@ -46,7 +46,10 @@ class MeDaCaRoute(APIRoute):
raise e
except Exception as e:
logger.exception(e)
raise UnexpectedException(detail=constants.LOGOUT_REASON_UNEXPECTED)
if isinstance(e, DBException):
raise UnexpectedException(detail=constants.LOGOUT_REASON_DB_ERROR)
else:
raise UnexpectedException(detail=constants.LOGOUT_REASON_UNEXPECTED)
return custom_route_handler
async def pre_process_route(self, request: Request) -> Request:

View File

@ -114,16 +114,16 @@ LOGOUT_REASON_BATCH_PROCESSING = 'batch_processing'
LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE = 'batch_processing_ult'
LOGOUT_REASON_NOT_LOGIN = 'not_login'
LOGOUT_REASON_SESSION_EXPIRED = 'session_expired'
LOGOUT_REASON_DB_ERROR = 'db_error'
LOGOUT_REASON_UNEXPECTED = 'unexpected'
LOGOUT_REASON_MESSAGE_MAP = {
LOGOUT_REASON_DO_LOGOUT: 'Logoutしました。',
LOGOUT_REASON_LOGIN_ERROR: '存在しないユーザー、<br>またはパスワードが違います。',
# 機能を利用できないとかでいいんじゃ
LOGOUT_REASON_BATCH_PROCESSING: '日次バッチ処理中なので、<br>生物由来データ参照は使用出来ません。',
LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE: '日次バッチ処理中のため、<br>マスタ-メンテは使用出来ません。',
# 使ってなさそう
LOGOUT_REASON_NOT_LOGIN: 'Loginしてからページにアクセスしてください。',
LOGOUT_REASON_SESSION_EXPIRED: 'セッションが切れています。<br>再度Loginしてください。',
LOGOUT_REASON_DB_ERROR: 'DB接続に失敗しました。<br>再度Loginするか、<br>管理者にお問い合わせください。',
LOGOUT_REASON_UNEXPECTED: '予期しないエラーが発生しました。<br>再度Loginするか、<br>管理者に問い合わせてください。'
}