Skip to content
This repository was archived by the owner on May 25, 2023. It is now read-only.

Commit 56de709

Browse files
committed
Using Django JSON Encoder
1 parent d438b98 commit 56de709

File tree

2 files changed

+7
-9
lines changed

2 files changed

+7
-9
lines changed

rest_hooks_delivery/deliverers.py

+5-8
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import requests
88

99
from django.db.models import F
10+
from django.core.serializers.json import DjangoJSONEncoder
1011

1112
from rest_hooks_delivery.models import FailedHook
1213
from rest_hooks_delivery.tasks import store_hook
@@ -107,15 +108,11 @@ def sync_flush(self):
107108

108109
client = Client()
109110

110-
def data_handler(obj):
111-
return obj.isoformat() if hasattr(obj, 'isoformat') else obj
112-
113-
114111
def retry(target, payload, instance=None, hook=None, cleanup=False, **kwargs):
115112
client.post(
116113
url=target,
117-
data=json.dumps(payload, default=data_handler) if not isinstance(payload, str) else
118-
payload,
114+
data=json.dumps(payload, cls=DjangoJSONEncoder)\
115+
if not isinstance(payload, str) else payload,
119116
headers={'Content-Type': 'application/json'},
120117
_hook_id=hook.pk,
121118
_hook_event=hook.event,
@@ -126,8 +123,8 @@ def retry(target, payload, instance=None, hook=None, cleanup=False, **kwargs):
126123
def batch(target, payload, instance=None, hook=None, cleanup=False, **kwargs):
127124
store_hook.delay(
128125
url=target,
129-
data=json.dumps(payload, default=data_handler) if not isinstance(payload, str) else
130-
payload,
126+
data=json.dumps(payload, cls=DjangoJSONEncoder)\
127+
if not isinstance(payload, str) else payload,
131128
_hook_id=hook.pk,
132129
_hook_event=hook.event,
133130
_hook_user_id=hook.user.pk

rest_hooks_delivery/tasks.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from rest_hooks_delivery.models import StoredHook
88

99
from django.conf import settings
10+
from django.core.serializers.json import DjangoJSONEncoder
1011

1112
import requests, json
1213

@@ -75,7 +76,7 @@ def batch_and_send(target_url):
7576
batch_data_list.append(event.payload)
7677
r = requests.post(
7778
target_url,
78-
data=json.dumps(batch_data_list),
79+
data=json.dumps(batch_data_list, cls=DjangoJSONEncoder),
7980
headers={'Content-Type': 'application/json'})
8081
if (r.status_code > 299 and not 'retry' in HOOK_DELIVERER_SETTINGS) or\
8182
(r.status_code < 300):

0 commit comments

Comments
 (0)