|
|
|
@ -10,7 +10,7 @@ from rest_framework.views import APIView
|
|
|
|
|
from core.forms import HookForm
|
|
|
|
|
from core.lib import market
|
|
|
|
|
from core.lib.schemas.drakdoo_s import DrakdooCallback
|
|
|
|
|
from core.models import Callback, Hook
|
|
|
|
|
from core.models import Callback, Hook, Signal
|
|
|
|
|
from core.util import logs
|
|
|
|
|
from core.views import ObjectCreate, ObjectDelete, ObjectList, ObjectUpdate
|
|
|
|
|
|
|
|
|
@ -88,16 +88,29 @@ class HookAPI(APIView):
|
|
|
|
|
except Hook.DoesNotExist:
|
|
|
|
|
return HttpResponseBadRequest("Hook does not exist.")
|
|
|
|
|
|
|
|
|
|
# Try getting the signal
|
|
|
|
|
try:
|
|
|
|
|
signal = Signal.objects.get(signal=hook_resp.title)
|
|
|
|
|
except Signal.DoesNotExist:
|
|
|
|
|
return HttpResponseBadRequest("Signal does not exist.")
|
|
|
|
|
|
|
|
|
|
# For uptime checks/testing
|
|
|
|
|
if data["exchange"].lower() == "n/a":
|
|
|
|
|
log.debug("HookAPI callback: exchange is N/A, skipping")
|
|
|
|
|
return HttpResponse("OK")
|
|
|
|
|
|
|
|
|
|
# Set the signal relation
|
|
|
|
|
data["signal"] = signal
|
|
|
|
|
|
|
|
|
|
# Create the callback object
|
|
|
|
|
callback = Callback.objects.create(hook=hook, **data)
|
|
|
|
|
callback.save()
|
|
|
|
|
market.process_callback(callback)
|
|
|
|
|
# Bump received count
|
|
|
|
|
hook.received = hook.received + 1
|
|
|
|
|
signal.received = signal.received + 1
|
|
|
|
|
hook.save()
|
|
|
|
|
signal.save()
|
|
|
|
|
|
|
|
|
|
return HttpResponse("OK")
|
|
|
|
|
|
|
|
|
|