set webhook

This commit is contained in:
Kseninia Mikhaylova 2024-07-18 13:18:21 +03:00
parent 2f725bbfc7
commit b32f930cbd
4 changed files with 8 additions and 15 deletions

View File

@ -190,5 +190,5 @@ ODATA_AUTH = os.environ.get("ODATA_AUTH")
TGBOT = { TGBOT = {
"TOKEN": os.environ.get("TG_TOKEN"), "TOKEN": os.environ.get("TG_TOKEN"),
"BASE_URL": NGROK_TEMP, "BASE_URL": NGROK_TEMP,
"WEBHOOK_URL": f"api/tgbot/webhook/{os.environ.get('TG_TOKEN')}", "WEBHOOK_URL": f"webhook/{os.environ.get('TG_TOKEN')}",
} }

View File

@ -29,7 +29,7 @@ router.register(r'api/element', views.ElementViewSet)
router.register(r'api/inventory', views.InventoryItemViewSet) router.register(r'api/inventory', views.InventoryItemViewSet)
router.register(r'api/tmc/fields', tmc_views.BaseCustomFieldViewSet) router.register(r'api/tmc/fields', tmc_views.BaseCustomFieldViewSet)
router.register(r'api/tmc/items', tmc_views.CustomTableViewSet) router.register(r'api/tmc/items', tmc_views.CustomTableViewSet)
router.register(settings.TGBOT['WEBHOOK_URL'], tgbot_views.TgItemViewSet) router.register(r'api/tgbot', tgbot_views.TgItemViewSet)
urlpatterns = [ urlpatterns = [
path('', include(router.urls)), path('', include(router.urls)),

View File

@ -26,6 +26,7 @@ from telegram.ext import (
from telegram.constants import ParseMode from telegram.constants import ParseMode
from django.conf import settings from django.conf import settings
from django.urls import reverse
from .apps import TgBotUpdater from .apps import TgBotUpdater
from .models import TgItem, TmcElement, TmcField from .models import TgItem, TmcElement, TmcField
@ -55,7 +56,7 @@ class TgBot:
async def set_webhook(self): async def set_webhook(self):
await TgBot.app.bot.setWebhook( await TgBot.app.bot.setWebhook(
f"https://{self.baseurl}/{self.webhook}/", drop_pending_updates=True f"https://{self.baseurl}{reverse('tgitem-send-tg-data')}", drop_pending_updates=True
) )
async def start_app(self): async def start_app(self):

View File

@ -1,9 +1,11 @@
from django.conf import settings
import json import json
from telegram import Update from telegram import Update
from rest_framework import mixins, viewsets from rest_framework import mixins, viewsets
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.decorators import action
from .tgbot import TgBot from .tgbot import TgBot
from .apps import TgBotUpdater from .apps import TgBotUpdater
@ -19,19 +21,9 @@ class TgItemViewSet(viewsets.ModelViewSet):
queryset = TgItem.objects.all() queryset = TgItem.objects.all()
serializer_class = TgItemSerializer serializer_class = TgItemSerializer
http_method_names = ["post", "get"] http_method_names = ["post", "get"]
def list(self, request, *args, **kwargs):
queryset = TgItem.objects.all()
serializer = TgItemSerializer(queryset, many=True)
inv = TgItem.objects.get(id='73e9fc87-a006-4c53-b3ee-39da6c79dbb5') @action(detail=False, methods=["post"], url_path=settings.TGBOT["WEBHOOK_URL"])
el = inv.tmc.get(id=58) def send_tg_data(self, request):
f= el.field.filter(text__isnull=True)
logger.info(f[0].field)
# fields = TmcField.objects.filter
return Response(serializer.data)
def create(self, request, *args, **kwargs):
TgBotUpdater.my_queue.put( TgBotUpdater.my_queue.put(
Update.de_json(data=json.loads(request.body), bot=TgBot.app.bot) Update.de_json(data=json.loads(request.body), bot=TgBot.app.bot)
) )