This reverts commit 820491adc06bb8bbd5c4bf0ec676176a6b5820eb, reversing changes made to 831de315e59bb89aa1bc4801abeacc4a5ad7a30f.
83 lines
3.8 KiB
Python
83 lines
3.8 KiB
Python
from src.aws.s3 import ConfigBucket
|
|
from src.config.objects import FetchTargetObjects
|
|
from src.error.exceptions import FileNotFoundException, InvalidConfigException
|
|
from src.parser.json_parser import JsonParser
|
|
from src.system_var.constants import PRE_JP_NAME
|
|
from src.system_var.environments import (CRM_CONFIG_BUCKET,
|
|
OBJECT_INFO_FILENAME,
|
|
OBJECT_INFO_FOLDER)
|
|
from src.util.execute_datetime import ExecuteDateTime
|
|
from src.util.logger import logger_instance as logger
|
|
|
|
|
|
def prepare_data_fetch_process():
|
|
"""データ取得準備処理
|
|
|
|
Raises:
|
|
FileNotFoundException: S3上のファイルが存在しない場合
|
|
InvalidConfigException: オブジェクト情報定義が不正だった場合
|
|
|
|
Returns:
|
|
fetch_target_objects : CRMオブジェクト情報インスタンス
|
|
execute_datetime : 実行日時取得インスタンス
|
|
process_result : 取得処理実行結果辞書オブジェクト
|
|
"""
|
|
|
|
# ① データ取得準備処理の開始ログを出力する
|
|
logger.info('I-PRE-01 データ取得準備処理を開始します')
|
|
|
|
# ② 取得処理開始年月日時分秒を控える
|
|
|
|
execute_datetime = ExecuteDateTime()
|
|
|
|
logger.info(f'I-PRE-02 データ取得処理開始日時:{execute_datetime}')
|
|
|
|
try:
|
|
# ③ S3 設定ファイル保管用バケットから、CRM_取得オブジェクト情報ファイルを取得する
|
|
object_info_file_s3_path = f's3://{CRM_CONFIG_BUCKET}{OBJECT_INFO_FOLDER}/{OBJECT_INFO_FILENAME}'
|
|
logger.debug(
|
|
f'D-PRE-03 CRM_取得オブジェクト情報ファイルの取得開始します ファイルパス:[{object_info_file_s3_path}]')
|
|
|
|
config_bucket = ConfigBucket()
|
|
object_info_file_str = config_bucket.get_object_info_file()
|
|
|
|
logger.debug('D-PRE-04 CRM_取得オブジェクト情報ファイルの取得成功しました')
|
|
|
|
except Exception as e:
|
|
raise FileNotFoundException(
|
|
'E-PRE-01', PRE_JP_NAME, f'CRM_取得オブジェクト情報ファイルが存在しません ファイル名:[{OBJECT_INFO_FILENAME}] エラー内容:[{e}]')
|
|
|
|
try:
|
|
# ④ CRM_取得オブジェクト情報ファイルをパースし、メモリ上に展開する
|
|
logger.debug('D-PRE-05 CRM_取得オブジェクト情報ファイルをパースします')
|
|
|
|
json_parser = JsonParser(object_info_file_str)
|
|
object_info_file_dict = json_parser.parse()
|
|
|
|
logger.debug('D-PRE-06 CRM_取得オブジェクト情報ファイルのパースに成功しました')
|
|
|
|
except Exception as e:
|
|
raise InvalidConfigException(
|
|
'E-PRE-02', PRE_JP_NAME, f'CRM_取得オブジェクト情報ファイルのパースに失敗しました エラー内容:[{e}]')
|
|
|
|
# ⑤ メモリ上のCRM_取得オブジェクト情報のキーobjectsの形式チェックを行う
|
|
try:
|
|
logger.debug('D-PRE-07 CRM_取得オブジェクト情報ファイルの形式チェックを開始します')
|
|
|
|
fetch_target_objects = FetchTargetObjects(object_info_file_dict)
|
|
|
|
logger.debug('D-PRE-08 CRM_取得オブジェクト情報ファイルの形式チェック 正常終了')
|
|
|
|
except Exception as e:
|
|
raise InvalidConfigException(
|
|
'E-PRE-03', PRE_JP_NAME, f'CRM_取得オブジェクト情報ファイルの形式チェックに失敗しました ファイル名:[{OBJECT_INFO_FILENAME}] エラー内容:[{e}]')
|
|
|
|
# ⑥ 処理結果出力用のマップを初期化
|
|
process_result = {}
|
|
|
|
# ⑦ データ取得準備処理の終了ログを出力する
|
|
logger.info('I-PRE-09 データ取得準備処理を終了します')
|
|
|
|
# ⑧ 次の処理へ移行する
|
|
return (fetch_target_objects, execute_datetime, process_result)
|