summaryrefslogtreecommitdiff
path: root/ishtar_common/views_api.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/views_api.py')
-rw-r--r--ishtar_common/views_api.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/ishtar_common/views_api.py b/ishtar_common/views_api.py
index 052a764bc..a8d6b9648 100644
--- a/ishtar_common/views_api.py
+++ b/ishtar_common/views_api.py
@@ -17,11 +17,15 @@
# See the file COPYING for details.
+from django.apps import apps
+from django.http import Http404
+
from urllib.parse import unquote_plus
from rest_framework import serializers
from rest_framework.response import Response
+from ishtar_common.models_common import GeneralType
from ishtar_common.models_imports import ImporterType
from ishtar_common.rest import GISAPIView
from ishtar_common.views_item import get_item
@@ -54,6 +58,25 @@ class GISSourceAPI(GISAPIView):
return Response(serializer.data)
+class GenericTypeSerializer(serializers.Serializer):
+ label = serializers.CharField(max_length=500)
+ txt_idx = serializers.CharField(max_length=200)
+
+
+class GISTypeAPI(GISAPIView):
+ def get(self, request, app, model, format=None):
+ try:
+ model = apps.get_model(app, model)
+ except LookupError:
+ raise Http404()
+ if not issubclass(model, GeneralType):
+ raise Http404()
+ serializer = GenericTypeSerializer(
+ model.objects.filter(available=True), many=True
+ )
+ return Response(serializer.data)
+
+
class GISImportAPI(GISAPIView):
PAGE_LEN = 50