From c52860eda9725afee42832a684149da459c65f29 Mon Sep 17 00:00:00 2001 From: Francisco Sandoval Date: Sun, 19 Nov 2023 14:29:56 -0300 Subject: [PATCH] cambio de tabla dispositivo, se omiten no vigentes en mapa --- docs/rest/dispositivo.rest | 11 ++++++----- project/api/models.py | 5 +++-- project/api/views/dispositivo.py | 13 ++++++++++--- project/api/views/mapa.py | 2 +- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/docs/rest/dispositivo.rest b/docs/rest/dispositivo.rest index 7ecdd9b..b057709 100644 --- a/docs/rest/dispositivo.rest +++ b/docs/rest/dispositivo.rest @@ -1,5 +1,5 @@ -@server = http://localhost:4000/api +@server = http://localhost:3000/api @token = {{login.response.body.$.token}} ### @@ -8,8 +8,8 @@ POST {{server}}/auth/ Content-Type: application/json { - "username": "0", - "password": "0" + "username": "usuario1", + "password": "usuario1" } @@ -18,6 +18,7 @@ Content-Type: application/json GET {{server}}/dispositivos Authorization: Bearer {{token}} + ### # @name whoami_existente POST {{server}}/dispositivos/whoami/ @@ -26,7 +27,7 @@ Content-Type: application/json { "whoami": { - "idDispositivo": "existe", + "idDispositivo": "TTM543870hyt", "KeyAutorizacion": "token" } } @@ -54,7 +55,7 @@ Content-Type: application/json { "GetInfoDevice": { - "idDispositivo": "existe", + "idDispositivo": "TTM543870hyt", "KeyAutorizacion":"token" } } diff --git a/project/api/models.py b/project/api/models.py index d03c614..b6e4718 100755 --- a/project/api/models.py +++ b/project/api/models.py @@ -40,10 +40,11 @@ class Conductor(models.Model): class Dispositivo(models.Model): - id_dispositivo = models.IntegerField(primary_key=True) + id_dispositivo = models.CharField(primary_key=True, max_length=100) id_paradero = models.ForeignKey('Paradero', models.DO_NOTHING, db_column='id_paradero', blank=True, null=True) vigente = models.BooleanField(blank=True, null=True) ultima_conexion = models.DateField(blank=True, null=True) + id_tipo_dispositivo = models.ForeignKey('TipoDispositivo', models.DO_NOTHING, db_column='id_tipo_dispositivo') class Meta: managed = False @@ -315,8 +316,8 @@ class SpatialRefSys(models.Model): class TipoDispositivo(models.Model): - id_dispositivo = models.ForeignKey(Dispositivo, models.DO_NOTHING, db_column='id_dispositivo', blank=True, null=True) id_tipo_dispositivo = models.IntegerField(primary_key=True) + descripcion = models.CharField(max_length=50) class Meta: managed = False diff --git a/project/api/views/dispositivo.py b/project/api/views/dispositivo.py index 8210160..6c3d769 100644 --- a/project/api/views/dispositivo.py +++ b/project/api/views/dispositivo.py @@ -1,9 +1,11 @@ from rest_framework import viewsets from django.http import JsonResponse +from django.db.models import F from rest_framework.decorators import action from .. import models, serializers import json +import logging class DispositivoViewSet(viewsets.ModelViewSet): queryset = models.Dispositivo.objects.all() @@ -14,11 +16,16 @@ class DispositivoViewSet(viewsets.ModelViewSet): input = json.loads(request.body) whoami = input['whoami'] - if (whoami['idDispositivo'] == 'existe'): + record = models.Paradero.objects \ + .filter(dispositivo__id_dispositivo=whoami['idDispositivo']) \ + .annotate(nro_paradero=F('id_paradero'), nombre_paradero=F('stop_name')) \ + .first() + + if (record): return JsonResponse({ "WhoamiResponse": { - "NroParadero": "AAA330", - "NombreParadero":"paradero 1 esq colon", + "NroParadero": record.nro_paradero, + "NombreParadero": record.nombre_paradero, "Status": "OK" } }) diff --git a/project/api/views/mapa.py b/project/api/views/mapa.py index c905c7f..b57e006 100755 --- a/project/api/views/mapa.py +++ b/project/api/views/mapa.py @@ -19,7 +19,7 @@ def paraderos(request): zoom = 17 marks = [] - paraderos = Paradero.objects.all() + paraderos = Paradero.objects.filter(vigente=True) for p in paraderos: marks.append({