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)
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)

View File

@ -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/<int:pk>/', paradero.info_public, name='paradero-infopublic'),
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.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<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'):
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}'
})
# url = f'{referer}/public/infoStop?codigoParadero={pk}'
return JsonResponse({ 'url_public': url })