diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-10-06 21:58:48 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:20:58 +0100 |
commit | cdd2fe043b916c1a184b750d5b085a6aae662e2c (patch) | |
tree | 480c3f13c5a93d60be8132350ec620365742e941 /ishtar_common | |
parent | a1a1b524fd02a57bd514ed95580fea8b67e1cede (diff) | |
download | Ishtar-cdd2fe043b916c1a184b750d5b085a6aae662e2c.tar.bz2 Ishtar-cdd2fe043b916c1a184b750d5b085a6aae662e2c.zip |
Syndication - API get result
Manage a classic search query via API
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/rest.py | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/ishtar_common/rest.py b/ishtar_common/rest.py index 9354a943d..0784f88cf 100644 --- a/ishtar_common/rest.py +++ b/ishtar_common/rest.py @@ -3,6 +3,7 @@ from rest_framework.response import Response from rest_framework.views import APIView from ishtar_common.models import ApiSearchModel +from ishtar_common.views_item import get_item class IpModelPermission(permissions.BasePermission): @@ -10,11 +11,7 @@ class IpModelPermission(permissions.BasePermission): if not request.user or not getattr(request.user, "apiuser", None): return False ip_addr = request.META['REMOTE_ADDR'] - q = ApiSearchModel.objects.filter( - user=request.user.apiuser, - user__ip=ip_addr, - content_type__app_label=view.model._meta.app_label, - content_type__model=view.model._meta.model_name) + q = view.search_model_query(request).filter(user__ip=ip_addr) return bool(q.count()) @@ -27,5 +24,22 @@ class SearchAPIView(APIView): assert self.model is not None super(SearchAPIView, self).__init__(**kwargs) + def search_model_query(self, request): + return ApiSearchModel.objects.filter( + user=request.user.apiuser, + content_type__app_label=self.model._meta.app_label, + content_type__model=self.model._meta.model_name) + def get(self, request, format=None): - return Response({}) + _get_item = get_item( + self.model, "get_" + self.model.SLUG, self.model.SLUG, + # TODO: own_table_cols=get_table_cols_for_ope() - adapt columns + ) + search_model = self.search_model_query(request).all()[0] + if search_model.limit_query: + # TODO + # request.GET[] += " " + search_model.limit_query + pass + response = _get_item(request) + return response + #return Response({}) |