This repository was archived by the owner on May 25, 2023. It is now read-only.
forked from sximba/django-rest-hooks-delivery
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmodels.py
57 lines (48 loc) · 2.44 KB
/
models.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# -*- coding: utf-8 -*-
# vim: ft=python:sw=4:ts=4:sts=4:et:
from django.conf import settings
from django.db import models
from django.utils import timezone
HOOK_EVENTS = getattr(settings, 'HOOK_EVENTS', None)
if HOOK_EVENTS is None:
raise Exception('You need to define settings.HOOK_EVENTS!')
AUTH_USER_MODEL = getattr(settings, 'AUTH_USER_MODEL', 'auth.User')
class StoredHook(models.Model):
target = models.URLField('Original target URL', max_length=255,
editable=False, db_index=True)
event = models.CharField('Event', max_length=64, db_index=True,
choices=[(e, e) for e in
sorted(HOOK_EVENTS.keys())],
editable=False)
user = models.ForeignKey(AUTH_USER_MODEL, editable=False)
payload = models.TextField(editable=False)
hook = models.ForeignKey('rest_hooks.Hook', editable=False)
created_at = models.DateTimeField(default=timezone.now,
editable=False, db_index=True)
def __unicode__(self):
return u'%s [%s]' % (self.target, self.event)
class Meta:
ordering = ('-created_at',)
class FailedHook(models.Model):
last_retry = models.DateTimeField(auto_now=True, editable=False,
db_index=True)
target = models.URLField('Original target URL', max_length=255,
editable=False, db_index=True)
event = models.CharField('Event', max_length=64, db_index=True,
choices=[(e, e) for e in
sorted(HOOK_EVENTS.keys())],
editable=False)
user = models.ForeignKey(AUTH_USER_MODEL, editable=False)
payload = models.TextField(editable=False)
response_headers = models.TextField(editable=False, max_length=65535)
response_body = models.TextField(editable=False, max_length=65535)
last_status = models.PositiveSmallIntegerField(editable=False,
db_index=True)
retries = models.PositiveIntegerField(editable=False, db_index=True,
default=1)
hook = models.ForeignKey('rest_hooks.Hook', editable=False)
def __unicode__(self):
return u'%s [%d]' % (self.target, self.last_status)
class Meta:
ordering = ('-last_retry',)
unique_together = (('target', 'event', 'user', 'hook'),)