diff --git a/back/api/urls.py b/back/api/urls.py index 7731343..f9e2300 100644 --- a/back/api/urls.py +++ b/back/api/urls.py @@ -30,6 +30,7 @@ router.register(r'api/inventory', views.InventoryItemViewSet) router.register(r'api/tmc/fields', tmc_views.BaseCustomFieldViewSet) router.register(r'api/tmc/items', tmc_views.CustomTableViewSet) router.register(r'api/tgbot', tgbot_views.TgItemViewSet) +router.register(r'api/tgbot/items', tgbot_views.TmcFieldViewset) urlpatterns = [ path('', include(router.urls)), diff --git a/back/tgbot/serializers.py b/back/tgbot/serializers.py index 0add34a..b65a981 100644 --- a/back/tgbot/serializers.py +++ b/back/tgbot/serializers.py @@ -9,4 +9,10 @@ logger = logging.getLogger("root") class TgItemSerializer(serializers.ModelSerializer): class Meta: model = TgItem - fields = '__all__' \ No newline at end of file + fields = "__all__" + depth = 3 + +class TmcFieldSerializer(serializers.ModelSerializer): + class Meta: + model = TgItem + fields = "__all__" \ No newline at end of file diff --git a/back/tgbot/views.py b/back/tgbot/views.py index 968584b..53bd586 100644 --- a/back/tgbot/views.py +++ b/back/tgbot/views.py @@ -10,7 +10,7 @@ from rest_framework.decorators import action from .tgbot import TgBot from .apps import TgBotUpdater from .models import TgItem, TmcElement, TmcField -from .serializers import TgItemSerializer +from .serializers import TgItemSerializer, TmcFieldSerializer import logging @@ -21,7 +21,7 @@ class TgItemViewSet(viewsets.ModelViewSet): queryset = TgItem.objects.all() serializer_class = TgItemSerializer http_method_names = ["post", "get"] - + @action(detail=False, methods=["post"], url_path=settings.TGBOT["WEBHOOK_URL"]) def send_tg_data(self, request): TgBotUpdater.my_queue.put( @@ -29,3 +29,17 @@ class TgItemViewSet(viewsets.ModelViewSet): ) return Response({"result": "ok"}) # return super().create(request, *args, **kwargs) + + +class TmcFieldViewset(viewsets.ModelViewSet): + queryset = TmcField.objects.all() + serializer_class = TmcFieldSerializer + http_method_names = ["get"] + + @action(detail=False, methods=["get"], url_path=r"get_image/(?P[^/.]+)") + def get_image(self, request, field_id): + if TmcField.objects.filter(id=field_id).exists(): + field = TmcField.objects.get(id=field_id) + return Response({"fileId": field.text}) + else: + raise (FileNotFoundError())