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 | |
| parent | a1a1b524fd02a57bd514ed95580fea8b67e1cede (diff) | |
| download | Ishtar-cdd2fe043b916c1a184b750d5b085a6aae662e2c.tar.bz2 Ishtar-cdd2fe043b916c1a184b750d5b085a6aae662e2c.zip | |
Syndication - API get result
Manage a classic search query via API
| -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({}) | 
