From 9caf97966ca2d2fe2aafd76e6403e649dfb777dd Mon Sep 17 00:00:00 2001 From: 3wc <3wc.git@doesthisthing.work> Date: Thu, 15 Apr 2021 18:57:22 +0200 Subject: [PATCH] Load django-webpush VAPID keys from DB --- djangoldp_webpushnotification/views.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/djangoldp_webpushnotification/views.py b/djangoldp_webpushnotification/views.py index 1b46547..977ef2f 100644 --- a/djangoldp_webpushnotification/views.py +++ b/djangoldp_webpushnotification/views.py @@ -5,9 +5,12 @@ from django.http.response import HttpResponse, JsonResponse from django.shortcuts import get_object_or_404, render from django.views.decorators.csrf import csrf_exempt from django.views.decorators.http import require_GET, require_POST -from djangoldp_account.models import LDPUser + from webpush import send_user_notification +from djangoldp_account.models import LDPUser +from djangoldp_webpushnotification.models import VAPIDKeyset + @require_POST @csrf_exempt @@ -22,6 +25,12 @@ def send_push(request): user_id = data["id"] user = get_object_or_404(LDPUser, pk=user_id) payload = {"head": data["head"], "body": data["body"]} + vapid_key = VAPIDKeyset.objects.first() + settings.WEBPUSH_SETTINGS = { + 'VAPID_PUBLIC_KEY': vapid_key.public_key, + 'VAPID_PRIVATE_KEY': vapid_key.private_key.tobytes().decode(), + 'VAPID_ADMIN_EMAIL': 'foo@bar.com', + } send_user_notification(user=user, payload=payload, ttl=1000) return JsonResponse(status=200, data={"message": "Web push successful"})