Merge branch 'subscription-system' into 'master'

feature: subscription system

See merge request startinblox/djangoldp-packages/djangoldp-notifications!7
This commit is contained in:
Matthieu Fesselier 2019-03-06 10:17:05 +00:00
commit 9694472c89
1 changed files with 23 additions and 23 deletions

View File

@ -1,7 +1,7 @@
# import requests import requests
# import logging import logging
# import datetime import datetime
# from threading import Thread from threading import Thread
from django.db import models from django.db import models
from django.conf import settings from django.conf import settings
from djangoldp.fields import LDPUrlField from djangoldp.fields import LDPUrlField
@ -9,6 +9,7 @@ from django.db.models.signals import post_save
from django.dispatch import receiver from django.dispatch import receiver
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.contrib.admin.models import LogEntry from django.contrib.admin.models import LogEntry
from djangoldp.models import Model
class Notification(models.Model): class Notification(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='inbox') user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='inbox')
@ -42,22 +43,21 @@ class Subscription(models.Model):
return '{}'.format(self.object) return '{}'.format(self.object)
# --- SUBSCRIPTION SYSTEM --- # --- SUBSCRIPTION SYSTEM ---
# @receiver(post_save, dispatch_uid="callback_notif") @receiver(post_save, dispatch_uid="callback_notif")
# def send_notification(sender, instance, **kwargs): def send_notification(sender, instance, **kwargs):
# if (sender != Notification and sender != LogEntry): if (sender != Notification and sender != LogEntry):
# threads = [] threads = []
# url = sender.url # TODO : get URL of saved resource url = settings.BASE_URL + Model.get_absolute_url(instance) + '/'
# for subscription in Subscription.objects.filter(object=url): for subscription in Subscription.objects.filter(object=url):
# process = Thread(target=send_request, args=[subscription.inbox, url]) process = Thread(target=send_request, args=[subscription.inbox, url])
# process.start() process.start()
# threads.append(process) threads.append(process)
def send_request(target, objectIri):
# def send_request(target, object): try:
# try: req=requests.post(target,
# req=requests.post(target, json={"@context":"https://cdn.happy-dev.fr/owl/hdcontext.jsonld",
# json={"@context":"https://cdn.happy-dev.fr/owl/hdcontext.jsonld", "object": objectIri, "type": "update"},
# "object": object, "type": "system", "read": False}, headers={"Content-Type": "application/ld+json"})
# headers={"Content-Type": "application/ld+json"}) except:
# except: logging.error('Djangoldp_notifications: Error with request')
# logging.error('Djangoldp_notifications: Error with request') return True
# return True