from jb.config import TOPIC_ARN, SUBSCRIPTION from jb.decorators import SNS_CLIENT, AMT_CLIENT from jb.config import settings def initial_setup(): # Run once for initial setup. Not on each server start or anything subscription = SNS_CLIENT.subscribe( # type: ignore TopicArn=TOPIC_ARN, Protocol="https", Endpoint=f"https://jamesbillings67.com/{settings.sns_path}/", ReturnSubscriptionArn=True, ) def check_sns_configuration(): SNS_CLIENT.get_topic_attributes(TopicArn=TOPIC_ARN) # check this TOPIC_ARN exists # (doesnt have permission, dont need this anyways) # res = SNS_CLIENT.list_topics() # arns = {x["TopicArn"] for x in res["Topics"]} # assert TOPIC_ARN in arns, f"SNS Topic {TOPIC_ARN} doesn't exist!" subs = SNS_CLIENT.list_subscriptions_by_topic(TopicArn=TOPIC_ARN) assert SUBSCRIPTION in subs["Subscriptions"] AMT_CLIENT.send_test_event_notification( Notification={ "Destination": TOPIC_ARN, "Transport": "SNS", "Version": "2006-05-05", "EventTypes": ["AssignmentSubmitted"], }, TestEventType="AssignmentSubmitted", )