From e374025ead0dc50fe9e0f1f2efe44165903639bb Mon Sep 17 00:00:00 2001 From: Francisco Sandoval Date: Sat, 20 Jan 2024 14:18:59 -0300 Subject: [PATCH] se corrige informacion publica de paradero --- project/api/middlewares.py | 5 +++++ project/api/urls.py | 5 ++--- project/api/views/paradero.py | 31 +++++++++++++++++++------------ 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/project/api/middlewares.py b/project/api/middlewares.py index d967fe4..ca7f6d5 100755 --- a/project/api/middlewares.py +++ b/project/api/middlewares.py @@ -24,11 +24,16 @@ class ApiMiddleware: match = resolve(request.path) logging.error(match) + # se omite esta regla al mostrar imagen de paradero if match.url_name == 'paradero_imagen-detail' and request.method == 'GET': response = self.get_response(request) return response + # se omite esta regla al mostrar informacion publica de paradero + if match.url_name == 'paradero-info-public' and request.method == 'GET': + response = self.get_response(request) + return response if not request.headers.get('Authorization'): return HttpResponse('Debe indicar el token de autorización', status = 400) diff --git a/project/api/urls.py b/project/api/urls.py index a616f3b..a4d0aa1 100755 --- a/project/api/urls.py +++ b/project/api/urls.py @@ -1,9 +1,9 @@ from django.urls import path, include from rest_framework import routers # from api import views -from api.views import usuario, auth, aplicacion, tipo, persona, comuna, region, paradero, rol, rolaplicacion +from api.views import usuario, auth, aplicacion, tipo, persona, comuna, region, rol, rolaplicacion from api.views import mapa, linea, letrero_lur, operador -from api.views import paradero_imagen, linea_paradero +from api.views import paradero, paradero_imagen, linea_paradero from api.views import dispositivo from api.views import rol_linea from api.views import upload @@ -35,6 +35,5 @@ urlpatterns = [ path('auth/', auth.jwt_login, name='auth'), path('mapas/paraderos/', mapa.paraderos, name='mapa-paraderos'), path('mapas/rutas/', mapa.rutas, name='mapa-rutas'), - path('paraderos/info-public//', paradero.info_public, name='paradero-infopublic'), path('upload/zip/', upload.upload_zip, name='upload_zip'), ] diff --git a/project/api/views/paradero.py b/project/api/views/paradero.py index 05a415a..bb16613 100755 --- a/project/api/views/paradero.py +++ b/project/api/views/paradero.py @@ -2,7 +2,7 @@ from django.http import JsonResponse from rest_framework import viewsets from rest_framework.decorators import action from api.serializers import ParaderoSerializer -from api.models import Paradero +from api.models import Paradero, Dispositivo import logging class ParaderoViewSet(viewsets.ModelViewSet): @@ -26,17 +26,24 @@ class ParaderoViewSet(viewsets.ModelViewSet): return JsonResponse({ 'count': queryset.count() }) + @action(detail=False, methods=['get'], url_path='info-public/(?P\S+)') + def info_public(self, request, pk=None): + if hasattr(request.META,'HTTP_REFERER'): + referer = request.META['HTTP_REFERER'] + else: + protocol = request.scheme + host = request.META['HTTP_HOST'] + port = request.META['SERVER_PORT'] + referer = f'{protocol}://{host}' -def info_public(request, pk): + record = Dispositivo.objects \ + .filter(id_tipo_dispositivo__descripcion='CODIGO QR', id_paradero=pk) \ + .first() - if hasattr(request.META,'HTTP_REFERER'): - referer = request.META['HTTP_REFERER'] - else: - protocol = request.scheme - host = request.META['HTTP_HOST'] - port = request.META['SERVER_PORT'] - referer = f'{protocol}://{host}:{port}' + url = None + if record != None: + url = f'https://transporte-paradero.hz.kursor.cl/rutaParadero/?id={record.id_dispositivo}' - return JsonResponse({ - 'url_public': f'{referer}/public/infoStop?codigoParadero={pk}' - }) \ No newline at end of file + + # url = f'{referer}/public/infoStop?codigoParadero={pk}' + return JsonResponse({ 'url_public': url }) \ No newline at end of file