"""Regenerate statement attachments.""" import logging import sys sys.path.append('') logging.basicConfig(level=logging.INFO) from scripts.utils import get_env # noqa: E402 from moneyhub import models # noqa: E402 from moneyhub.config import Config # noqa: E402 from moneyhub.connectors import sqs # noqa: E402 from moneyhub.connectors.ows_moneyhub import OwsMoneyhub # noqa: E402 if __name__ == '__main__': statement_period_id = int(get_env('STATEMENT_PERIOD_ID', default='0')) account_id = get_env('ACCOUNT_ID') statement_attachment_type = get_env('STATEMENT_ATTACHMENT_TYPE') statement_attachment_ids = list(map(int, get_env('STATEMENT_ATTACHMENT_IDS').split(','))) if ( get_env('STATEMENT_ATTACHMENT_IDS')) else None if statement_attachment_ids: messages = [] try: for statement_attachment_id in statement_attachment_ids: if models.StatementAttachment.exists(statement_attachment_id=statement_attachment_id): # noqa: E501 messages.append({ 'statement_attachment_id': statement_attachment_id, }) sqs.send_messages(Config.SQS_MH_GENERATE_ATTACHMENTS_QUEUE_NAME, None, messages) logging.info(f'Sent {len(messages)} messages') except Exception as e: logging.error(f' An exception occurred: {e}') else: body = {} if not statement_period_id: logging.error('No statement period id provided. Exiting...') exit(1) if account_id: body['account_id'] = int(account_id) if statement_attachment_type: body['statement_attachment_type'] = statement_attachment_type response = OwsMoneyhub.regenerate_statement_attachments(statement_period_id, body) logging.info(response)