Merge branch '3-403' into 'master'
Resolve "403 error when creating a notification" Closes #3 See merge request startinblox/djangoldp-packages/djangoldp-notifications!8
This commit is contained in:
commit
43757c07a5
@ -1,21 +1,21 @@
|
||||
import requests
|
||||
import logging
|
||||
import datetime
|
||||
from threading import Thread
|
||||
|
||||
import requests
|
||||
from django.conf import settings
|
||||
from django.contrib.admin.models import LogEntry
|
||||
from django.contrib.sessions.models import Session
|
||||
from django.db import models
|
||||
from django.conf import settings
|
||||
from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
from oidc_provider.models import Token
|
||||
|
||||
from djangoldp.fields import LDPUrlField
|
||||
from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.admin.models import LogEntry
|
||||
from djangoldp.models import Model
|
||||
from djangoldp.permissions import InboxPermissions
|
||||
|
||||
class Notification(models.Model):
|
||||
|
||||
class Notification(Model):
|
||||
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='inbox')
|
||||
author_user = LDPUrlField()
|
||||
object = LDPUrlField()
|
||||
@ -23,17 +23,20 @@ class Notification(models.Model):
|
||||
summary = models.TextField()
|
||||
date = models.DateTimeField(auto_now_add=True)
|
||||
read = models.BooleanField()
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
('view_notification', 'Read'),
|
||||
('control_notification', 'Control'),
|
||||
)
|
||||
permission_classes=[InboxPermissions]
|
||||
ordering = ['date']
|
||||
|
||||
def __str__(self):
|
||||
return '{}'.format(self.type)
|
||||
|
||||
class Subscription(models.Model):
|
||||
|
||||
class Subscription(Model):
|
||||
object = models.URLField()
|
||||
inbox = models.URLField()
|
||||
|
||||
@ -46,6 +49,7 @@ class Subscription(models.Model):
|
||||
def __str__(self):
|
||||
return '{}'.format(self.object)
|
||||
|
||||
|
||||
# --- SUBSCRIPTION SYSTEM ---
|
||||
@receiver(post_save, dispatch_uid="callback_notif")
|
||||
def send_notification(sender, instance, **kwargs):
|
||||
@ -56,12 +60,14 @@ def send_notification(sender, instance, **kwargs):
|
||||
process = Thread(target=send_request, args=[subscription.inbox, url])
|
||||
process.start()
|
||||
threads.append(process)
|
||||
|
||||
|
||||
def send_request(target, object_iri):
|
||||
try:
|
||||
req=requests.post(target,
|
||||
json={"@context":"https://cdn.happy-dev.fr/owl/hdcontext.jsonld",
|
||||
"object": object_iri, "type": "update"},
|
||||
headers={"Content-Type": "application/ld+json"})
|
||||
req = requests.post(target,
|
||||
json={"@context": "https://cdn.happy-dev.fr/owl/hdcontext.jsonld",
|
||||
"object": object_iri, "type": "update"},
|
||||
headers={"Content-Type": "application/ld+json"})
|
||||
except:
|
||||
logging.error('Djangoldp_notifications: Error with request')
|
||||
return True
|
||||
return True
|
||||
|
@ -1,10 +0,0 @@
|
||||
"""djangoldp_notifications URL Configuration"""
|
||||
from django.conf.urls import url
|
||||
from .models import Notification, Subscription
|
||||
from djangoldp.views import LDPViewSet
|
||||
#from djangoldp.permissions import InboxPermissions
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^notifications/', LDPViewSet.urls(model=Notification)), #permission_classes=(InboxPermissions,))),
|
||||
url(r'^subscriptions/', LDPViewSet.urls(model=Subscription)),
|
||||
]
|
Loading…
Reference in New Issue
Block a user