import json from flask import current_app from pywebpush import webpush, WebPushException from ktvmanager.lib.database import delete_push_subscription def send_notification(subscription_json, message_body): try: subscription_info = json.loads(subscription_json) webpush( subscription_info=subscription_info, data=message_body, vapid_private_key=current_app.config["VAPID_PRIVATE_KEY"], vapid_claims={"sub": current_app.config["VAPID_CLAIM_EMAIL"]}, ) except WebPushException as ex: print(f"Web push error: {ex}") if ex.response and ex.response.status_code == 410: print("Subscription is no longer valid, removing from DB.") delete_push_subscription(subscription_json)