import urllib.parse from slack_sdk.models.blocks import DividerBlock, HeaderBlock, SectionBlock from cross_product_documentation_notifications.config import Config from cross_product_documentation_notifications.slack_client import SlackClient def handler(logger, event: dict) -> None: slack_client = SlackClient() header_block = HeaderBlock(text="Documentation update") blocks = [header_block, DividerBlock()] logger.debug(event) for record in event.get('Records'): bucket = record['s3']['bucket']['name'] key = urllib.parse.unquote_plus(record['s3']['object']['key'], encoding='utf-8') blocks.append(SectionBlock(text='Documentation has been updated, see detail below')) blocks.append(SectionBlock(text=f'{bucket}/{key} - updated')) blocks.append(SectionBlock(text=f'Navigate to https://cross-product-docs.atlas.stream/{key} to review.')) slack_client.post_block_message(channel=Config.SLACK_CHANNEL, blocks=blocks) return return