Make callbacks handle signals
This commit is contained in:
parent
4527a9d04b
commit
bdae8ab093
|
@ -10,7 +10,7 @@ from rest_framework.views import APIView
|
||||||
from core.forms import HookForm
|
from core.forms import HookForm
|
||||||
from core.lib import market
|
from core.lib import market
|
||||||
from core.lib.schemas.drakdoo_s import DrakdooCallback
|
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.util import logs
|
||||||
from core.views import ObjectCreate, ObjectDelete, ObjectList, ObjectUpdate
|
from core.views import ObjectCreate, ObjectDelete, ObjectList, ObjectUpdate
|
||||||
|
|
||||||
|
@ -88,16 +88,29 @@ class HookAPI(APIView):
|
||||||
except Hook.DoesNotExist:
|
except Hook.DoesNotExist:
|
||||||
return HttpResponseBadRequest("Hook does not exist.")
|
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":
|
if data["exchange"].lower() == "n/a":
|
||||||
log.debug("HookAPI callback: exchange is N/A, skipping")
|
log.debug("HookAPI callback: exchange is N/A, skipping")
|
||||||
return HttpResponse("OK")
|
return HttpResponse("OK")
|
||||||
|
|
||||||
|
# Set the signal relation
|
||||||
|
data["signal"] = signal
|
||||||
|
|
||||||
# Create the callback object
|
# Create the callback object
|
||||||
callback = Callback.objects.create(hook=hook, **data)
|
callback = Callback.objects.create(hook=hook, **data)
|
||||||
callback.save()
|
callback.save()
|
||||||
market.process_callback(callback)
|
market.process_callback(callback)
|
||||||
# Bump received count
|
# Bump received count
|
||||||
hook.received = hook.received + 1
|
hook.received = hook.received + 1
|
||||||
|
signal.received = signal.received + 1
|
||||||
hook.save()
|
hook.save()
|
||||||
|
signal.save()
|
||||||
|
|
||||||
return HttpResponse("OK")
|
return HttpResponse("OK")
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,9 @@ class SignalList(LoginRequiredMixin, ObjectList):
|
||||||
list_template = "partials/signal-list.html"
|
list_template = "partials/signal-list.html"
|
||||||
model = Signal
|
model = Signal
|
||||||
page_title = "List of signals. Linked to hooks and strategies."
|
page_title = "List of signals. Linked to hooks and strategies."
|
||||||
page_subtitle = "Link signals you have defined in Drakdoo to their corresponding hooks."
|
page_subtitle = (
|
||||||
|
"Link signals you have defined in Drakdoo to their corresponding hooks."
|
||||||
|
)
|
||||||
|
|
||||||
list_url_name = "signals"
|
list_url_name = "signals"
|
||||||
list_url_args = ["type"]
|
list_url_args = ["type"]
|
||||||
|
|
Loading…
Reference in New Issue