feat: リクエストの基底モデルを作成。サニタイズ、エスケープを解除を共通化
This commit is contained in:
parent
89f43e79df
commit
7d74a59320
@ -240,7 +240,8 @@ def search_doc(
|
||||
ultmarc = ultmarc_service.prepare_ultmarc_doctor_search_view()
|
||||
ultmarc.is_batch_processing = is_batch_processing
|
||||
ultmarc.doctor_data = ultmarc_doctor_data
|
||||
ultmarc.form_data = ultmarc_doctor_form
|
||||
# 画面表示用にエスケープを解除して返す
|
||||
ultmarc.form_data = ultmarc_doctor_form.unescape()
|
||||
|
||||
# セッション書き換え
|
||||
session.update(
|
||||
|
||||
20
ecs/jskult-webapp/src/model/request/request_base_model.py
Normal file
20
ecs/jskult-webapp/src/model/request/request_base_model.py
Normal file
@ -0,0 +1,20 @@
|
||||
import html
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from src.util.sanitize import sanitize
|
||||
|
||||
|
||||
@sanitize
|
||||
class RequestBaseModel(BaseModel):
|
||||
"""
|
||||
Webのリクエストを受け取る共通モデルクラス
|
||||
保持するメンバはエスケープされる
|
||||
エスケープを解除するには、unescapeメソッドを使用する
|
||||
"""
|
||||
|
||||
def unescape(self):
|
||||
for k, v in self.dict().items():
|
||||
if v is not None and type(v) is str:
|
||||
setattr(self, k, html.unescape(v))
|
||||
return self
|
||||
@ -1,13 +1,11 @@
|
||||
from typing import Optional
|
||||
|
||||
from fastapi import Form
|
||||
from pydantic import BaseModel
|
||||
|
||||
from src.util.sanitize import sanitize
|
||||
from src.model.request.request_base_model import RequestBaseModel
|
||||
|
||||
|
||||
@sanitize
|
||||
class UltmarcDoctorSearchModel(BaseModel):
|
||||
class UltmarcDoctorSearchModel(RequestBaseModel):
|
||||
dcf_pcf_dr_cd: Optional[str]
|
||||
dr_name: Optional[str]
|
||||
dr_name_kana: Optional[str]
|
||||
@ -54,7 +52,7 @@ class UltmarcDoctorSearchModel(BaseModel):
|
||||
)
|
||||
|
||||
|
||||
class UltmarcDoctorInfoModel(BaseModel):
|
||||
class UltmarcDoctorInfoModel(RequestBaseModel):
|
||||
doc_id: Optional[str]
|
||||
page_num: Optional[int]
|
||||
|
||||
|
||||
@ -2,13 +2,12 @@ import html
|
||||
from typing import Optional
|
||||
|
||||
from fastapi import Form
|
||||
from pydantic import BaseModel
|
||||
|
||||
from src.util.sanitize import sanitize
|
||||
from src.model.request.request_base_model import RequestBaseModel
|
||||
|
||||
|
||||
@sanitize
|
||||
class UltmarcInstSearchModel(BaseModel):
|
||||
# @sanitize
|
||||
class UltmarcInstSearchModel(RequestBaseModel):
|
||||
dcf_dsf_inst_cd: Optional[str]
|
||||
inst_div_cd: Optional[str]
|
||||
form_inst_name_kanji: Optional[str]
|
||||
@ -54,7 +53,7 @@ class UltmarcInstSearchModel(BaseModel):
|
||||
return self
|
||||
|
||||
|
||||
class UltmarcInstInfoModel(BaseModel):
|
||||
class UltmarcInstInfoModel(RequestBaseModel):
|
||||
inst_id: Optional[str]
|
||||
page_num: Optional[int]
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user