Merge branch 'develop/backend-api-dispositivo' into 'develop/backend'

Develop/backend api dispositivo

See merge request m3f_usm/T_digital_Transporte_USM!3
develop/backend-letrero
Francisco Sandoval 2023-10-22 15:09:56 +00:00
commit 4567b795f2
4 changed files with 176 additions and 0 deletions

View File

@ -9,6 +9,11 @@ class AplicacionSerializer(serializers.ModelSerializer):
model = models.Aplicacion model = models.Aplicacion
fields = '__all__' fields = '__all__'
class DispositivoSerializer(serializers.ModelSerializer):
class Meta:
model = models.Dispositivo
fields = '__all__'
class TipoDispositivoSerializer(serializers.ModelSerializer): class TipoDispositivoSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = models.TipoDispositivo model = models.TipoDispositivo

View File

@ -4,11 +4,13 @@ from rest_framework import routers
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, paradero, rol, rolaplicacion
from api.views import mapa, linea, operador from api.views import mapa, linea, operador
from api.views import paradero_imagen from api.views import paradero_imagen
from api.views import dispositivo
router = routers.DefaultRouter() router = routers.DefaultRouter()
router.register('aplicaciones', aplicacion.AplicacionViewSet) router.register('aplicaciones', aplicacion.AplicacionViewSet)
router.register('usuarios', usuario.UsuarioViewSet) router.register('usuarios', usuario.UsuarioViewSet)
router.register('personas', persona.PersonaViewSet) router.register('personas', persona.PersonaViewSet)
router.register('dispositivos', dispositivo.DispositivoViewSet)
router.register('tipos/persona', tipo.TipoTratamientoPersonaViewSet) router.register('tipos/persona', tipo.TipoTratamientoPersonaViewSet)
router.register('tipos/transporte', tipo.TipoTransporteViewSet) router.register('tipos/transporte', tipo.TipoTransporteViewSet)
router.register('tipos/dispositivo', tipo.TipoDispositivoViewSet) router.register('tipos/dispositivo', tipo.TipoDispositivoViewSet)

View File

@ -0,0 +1,106 @@
from rest_framework import viewsets
from django.http import JsonResponse
from rest_framework.decorators import action
from .. import models, serializers
import json
class DispositivoViewSet(viewsets.ModelViewSet):
queryset = models.Dispositivo.objects.all()
serializer_class = serializers.DispositivoSerializer
@action(detail=False, methods=['post'])
def whoami(self, request, pk=None):
input = json.loads(request.body)
whoami = input['whoami']
if (whoami['idDispositivo'] == 'existe'):
return JsonResponse({
"WhoamiResponse": {
"NroParadero": "AAA330",
"NombreParadero":"paradero 1 esq colon",
"Status": "OK"
}
})
# retorna json de no existente
return JsonResponse({
"WhoamiResponse": {
"Status": "NOK",
"errorString": "Dispositivo no identificado"
}
})
@action(detail=False, methods=['post'])
def getInfoDevice(self, request, pk=None):
input = json.loads(request.body)
linea1 = {
"Linea": "803010",
"Descripcion": "Tucapel",
"TipoLocomocion": 1,
"colorFondo": "Hexadecimal",
"colorLetra": "Hexadecimal",
"Llegadas": [
{
"Patente": "RPDA-98",
"Planificada": "",
"EstimadaGPS": "15:08",
"DistanciaGPS": "1.0 KM"
},
{
"Patente": "WYXYZ-22",
"Planificada": "",
"EstimadaGPS": "15:42",
"DistanciaGPS": "5.0 KM"
},
{
"Patente": "ABCA-65",
"Planificada": "",
"EstimadaGPS": "16:18",
"DistanciaGPS": "13.4 KM"
}
],
"Mensajelinea": ""
}
linea2 = {
"Linea": "5487",
"Descripcion": "Centauro",
"TipoLocomocion": 1,
"colorFondo": "Hexadecimal",
"colorLetra": "Hexadecimal",
"Llegadas": [
{
"Patente": "PLKJ-32",
"Planificada": "15:13",
"EstimadaGPS": "",
"DistanciaGPS": "",
},
{
"Patente": "GHLK-11",
"Planificada": "15:39",
"EstimadaGPS": "",
"DistanciaGPS": "",
},
{
"Patente": "DFQW-55",
"Planificada": "16:22",
"EstimadaGPS": "",
"DistanciaGPS": "",
}
],
"Mensajelinea": "Sin info. GPS, la informacion es estimada"
}
detalle_lineas = []
detalle_lineas.append(linea1)
detalle_lineas.append(linea2)
return JsonResponse({
"GetInfoDeviceResponse": {
"DetalleLineas": detalle_lineas,
"MensajeParadero": "No considerar, uso futuro"
}
})

View File

@ -0,0 +1,63 @@
@server = http://localhost:4000/api
@token = {{login.response.body.$.token}}
###
# @name login
POST {{server}}/auth/
Content-Type: application/json
{
"username": "0",
"password": "0"
}
###
# @name list
GET {{server}}/dispositivos
Authorization: Bearer {{token}}
###
# @name whoami_existente
POST {{server}}/dispositivos/whoami/
Authorization: Bearer {{token}}
Content-Type: application/json
{
"whoami": {
"idDispositivo": "existe",
"KeyAutorizacion": "token"
}
}
###
# @name whoami_no_existe
POST {{server}}/dispositivos/whoami/
Authorization: Bearer {{token}}
Content-Type: application/json
{
"whoami": {
"idDispositivo": "otro",
"KeyAutorizacion": "token"
}
}
###
# @name get_info_device
POST {{server}}/dispositivos/getInfoDevice/
Authorization: Bearer {{token}}
Content-Type: application/json
{
"GetInfoDevice": {
"idDispositivo": "existe",
"KeyAutorizacion":"token"
}
}
###