shimoda.m@nds-tyo.co.jp 65acc3ce09 style: format適用
2023-05-12 13:39:14 +09:00

58 lines
1.8 KiB
Python

from fastapi import APIRouter, Depends, Request
from fastapi.responses import HTMLResponse
from src.depends.services import get_service
from src.model.internal.session import UserSession
from src.model.view.menu_view_model import MenuViewModel
from src.model.view.user_view_model import UserViewModel
from src.router.session_router import AuthenticatedRoute
from src.services.batch_status_service import BatchStatusService
from src.services.session_service import set_session
from src.templates import templates
router = APIRouter()
router.route_class = AuthenticatedRoute
#########################
# Views #
#########################
@router.get('/', response_class=HTMLResponse)
def menu_view(
request: Request,
batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
):
session: UserSession = request.session
# 日付マスターからバッチ情報を取得する
hdke_tbl_record = batch_status_service.hdke_table_record
batch_status = hdke_tbl_record.bch_actf
user = UserViewModel(
doc_flg=session.doc_flg,
inst_flg=session.inst_flg,
bio_flg=session.bio_flg,
master_mainte_flg=session.master_mainte_flg
)
menu = MenuViewModel(
batch_status=batch_status,
user_model=user
)
# セッション書き換え
session.update(
actions=[
UserSession.last_access_time.set(UserSession.new_last_access_time()),
UserSession.record_expiration_time.set(UserSession.new_record_expiration_time()),
]
)
set_session(session)
templates_response = templates.TemplateResponse(
'menu.html',
{
'request': request,
'menu': menu
},
headers={'session_key': session.session_key}
)
return templates_response