import json from src.aws.s3 import ConfigBucket from src.config.objects import LastFetchDatetime, TargetObject from src.error.exceptions import FileUploadException from src.system_var.constants import UPD_JP_NAME from src.util.logger import logger_instance as logger def upload_last_fetch_datetime_process(target_object: TargetObject, last_fetch_datetime: LastFetchDatetime): """前回取得日時ファイル更新 Args: target_object (TargetObject): 取得対象オブジェクト情報インスタンス last_fetch_datetime (LastFetchDatetime): データ取得期間設定インスタンス Raises: FileUploadException: S3のファイルアップロード失敗 """ # ① 前回取得日時ファイル更新処理の開始ログを出力する logger.info( f'I-UPD-01 [{target_object.object_name}] の前回取得日時ファイルの更新処理を開始します') try: if target_object.is_update_last_fetch_datetime is False: # ② オブジェクト情報.is_update_last_fetch_datetimeがfalseの場合、以降の処理をスキップする logger.info( f'I-UPD-02 [{target_object.object_name}] の前回取得日時ファイルの更新処理をスキップします') return # ③ 前回取得日時ファイル.last_fetch_datetime_fromに取得処理開始年月日時分秒を設定する # 前回取得日時ファイル.last_fetch_datetime_toに空文字を設定する last_fetch_datetime_dict = { 'last_fetch_datetime_from': last_fetch_datetime.last_fetch_datetime_to, 'last_fetch_datetime_to': '' } config_bucket = ConfigBucket() config_bucket.put_last_fetch_datetime_file( target_object.last_fetch_datetime_file_name, json.dumps(last_fetch_datetime_dict)) logger.info( f'D-UPD-03 [{target_object.object_name}] の前回取得日時ファイル更新処理 正常終了') except Exception as e: raise FileUploadException( 'E-UPD-01', UPD_JP_NAME, f'[{target_object.object_name}] 前回処理日時ファイルのアップロードに失敗しました ファイル名:[{target_object.last_fetch_datetime_file_name}] エラー内容:[{e}]') # ④ 前回取得日時ファイル更新処理の終了ログを出力する logger.info( f'I-UPD-04 [{target_object.object_name}] の前回取得日時ファイルの更新処理を終了します') # ⑤ 次の処理へ移行する return