se corrige informacion publica de paradero

francisco/photos
Francisco Sandoval 2024-01-20 14:18:59 -03:00
parent 06483aa811
commit e374025ead
3 changed files with 26 additions and 15 deletions

View File

@ -24,11 +24,16 @@ class ApiMiddleware:
match = resolve(request.path) match = resolve(request.path)
logging.error(match) logging.error(match)
# se omite esta regla al mostrar imagen de paradero # se omite esta regla al mostrar imagen de paradero
if match.url_name == 'paradero_imagen-detail' and request.method == 'GET': if match.url_name == 'paradero_imagen-detail' and request.method == 'GET':
response = self.get_response(request) response = self.get_response(request)
return response 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'): if not request.headers.get('Authorization'):
return HttpResponse('Debe indicar el token de autorización', status = 400) return HttpResponse('Debe indicar el token de autorización', status = 400)

View File

@ -1,9 +1,9 @@
from django.urls import path, include from django.urls import path, include
from rest_framework import routers from rest_framework import routers
# from api import views # 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 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 dispositivo
from api.views import rol_linea from api.views import rol_linea
from api.views import upload from api.views import upload
@ -35,6 +35,5 @@ urlpatterns = [
path('auth/', auth.jwt_login, name='auth'), path('auth/', auth.jwt_login, name='auth'),
path('mapas/paraderos/', mapa.paraderos, name='mapa-paraderos'), path('mapas/paraderos/', mapa.paraderos, name='mapa-paraderos'),
path('mapas/rutas/', mapa.rutas, name='mapa-rutas'), path('mapas/rutas/', mapa.rutas, name='mapa-rutas'),
path('paraderos/info-public/<int:pk>/', paradero.info_public, name='paradero-infopublic'),
path('upload/zip/', upload.upload_zip, name='upload_zip'), path('upload/zip/', upload.upload_zip, name='upload_zip'),
] ]

View File

@ -2,7 +2,7 @@ from django.http import JsonResponse
from rest_framework import viewsets from rest_framework import viewsets
from rest_framework.decorators import action from rest_framework.decorators import action
from api.serializers import ParaderoSerializer from api.serializers import ParaderoSerializer
from api.models import Paradero from api.models import Paradero, Dispositivo
import logging import logging
class ParaderoViewSet(viewsets.ModelViewSet): class ParaderoViewSet(viewsets.ModelViewSet):
@ -26,17 +26,24 @@ class ParaderoViewSet(viewsets.ModelViewSet):
return JsonResponse({ 'count': queryset.count() }) return JsonResponse({ 'count': queryset.count() })
@action(detail=False, methods=['get'], url_path='info-public/(?P<pk>\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'): url = None
referer = request.META['HTTP_REFERER'] if record != None:
else: url = f'https://transporte-paradero.hz.kursor.cl/rutaParadero/?id={record.id_dispositivo}'
protocol = request.scheme
host = request.META['HTTP_HOST']
port = request.META['SERVER_PORT']
referer = f'{protocol}://{host}:{port}'
return JsonResponse({
'url_public': f'{referer}/public/infoStop?codigoParadero={pk}' # url = f'{referer}/public/infoStop?codigoParadero={pk}'
}) return JsonResponse({ 'url_public': url })