|
|
@ -7,16 +7,16 @@ from django.shortcuts import render
|
|
|
|
from django.views import View
|
|
|
|
from django.views import View
|
|
|
|
from rest_framework.parsers import FormParser, JSONParser
|
|
|
|
from rest_framework.parsers import FormParser, JSONParser
|
|
|
|
from rest_framework.views import APIView
|
|
|
|
from rest_framework.views import APIView
|
|
|
|
|
|
|
|
from serde import ValidationError
|
|
|
|
|
|
|
|
from util import log
|
|
|
|
|
|
|
|
|
|
|
|
from core.forms import HookForm
|
|
|
|
from core.forms import HookForm
|
|
|
|
from core.models import Callback, Hook
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from core.lib.serde import drakdoo
|
|
|
|
from core.lib.serde import drakdoo
|
|
|
|
from serde import ValidationError
|
|
|
|
from core.models import Callback, Hook
|
|
|
|
from util import log
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
log = log.get_logger(__name__)
|
|
|
|
log = log.get_logger(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_hooks(user):
|
|
|
|
def get_hooks(user):
|
|
|
|
hooks = Hook.objects.filter(user=user)
|
|
|
|
hooks = Hook.objects.filter(user=user)
|
|
|
|
return hooks
|
|
|
|
return hooks
|
|
|
@ -41,6 +41,20 @@ class HookAPI(APIView):
|
|
|
|
log.error(f"HookAPI POST: {e}")
|
|
|
|
log.error(f"HookAPI POST: {e}")
|
|
|
|
return HttpResponseBadRequest(e)
|
|
|
|
return HttpResponseBadRequest(e)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data = {
|
|
|
|
|
|
|
|
"title": hook_resp.title,
|
|
|
|
|
|
|
|
"message": hook_resp.message,
|
|
|
|
|
|
|
|
"period": hook_resp.period,
|
|
|
|
|
|
|
|
"market": hook_resp.market,
|
|
|
|
|
|
|
|
"timestamp_sent": hook_resp.timestamp.sent,
|
|
|
|
|
|
|
|
"timestamp_trade": hook_resp.timestamp.trade,
|
|
|
|
|
|
|
|
"market_exchange": hook_resp.market.exchange,
|
|
|
|
|
|
|
|
"market_item": hook_resp.market.item,
|
|
|
|
|
|
|
|
"market_currency": hook_resp.market.currency,
|
|
|
|
|
|
|
|
"market_contract": hook_resp.market.contract,
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
log.debug("HookAPI callback: data: %s", data)
|
|
|
|
|
|
|
|
|
|
|
|
# Try getting the hook
|
|
|
|
# Try getting the hook
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
hook = Hook.objects.get(hook=hook_name)
|
|
|
|
hook = Hook.objects.get(hook=hook_name)
|
|
|
@ -48,10 +62,7 @@ class HookAPI(APIView):
|
|
|
|
return HttpResponseBadRequest("Hook does not exist.")
|
|
|
|
return HttpResponseBadRequest("Hook does not exist.")
|
|
|
|
|
|
|
|
|
|
|
|
# Create the callback object
|
|
|
|
# Create the callback object
|
|
|
|
callback = Callback.objects.create(
|
|
|
|
callback = Callback.objects.create(hook=hook, **data)
|
|
|
|
hook=hook,
|
|
|
|
|
|
|
|
data=request.data,
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
callback.save()
|
|
|
|
callback.save()
|
|
|
|
# Bump received count
|
|
|
|
# Bump received count
|
|
|
|
hook.received = hook.received + 1
|
|
|
|
hook.received = hook.received + 1
|
|
|
|