Skip to content

Commit

Permalink
La cruza con traccar se hace en el backend
Browse files Browse the repository at this point in the history
  • Loading branch information
logos914 committed Nov 22, 2024
1 parent 9dbf8ca commit 8573ef8
Showing 1 changed file with 59 additions and 1 deletion.
60 changes: 59 additions & 1 deletion routes/asig_operador_vehiculo.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,41 @@
from models.usuario import Usuario
from models.vehiculo import Vehiculo
from models.bitacora_asignaciones import BitacoraAsignaciones
import os
import requests

asig_operador_vehiculo = Blueprint('asig_operador_vehiculo', __name__)

@asig_operador_vehiculo.route('/asignacion', methods=['POST'])
def asignar():
id_vehiculo = request.form.get('id_vehiculo')
id_usuario = request.form.get('id_usuario')
distancia_inicial = request.form.get('distancia_inicial')


traccar_api = os.getenv('TRACCAR_API')

# Obtener información del dispositivo
devices_response = requests.get(f"{traccar_api}/devices?uniqueId={id_vehiculo}")
devices = devices_response.json()

# Encontrar el dispositivo con el uniqueId igual al id_vehiculo
device = next((d for d in devices if d['uniqueId'] == id_vehiculo), None)
if not device:
return jsonify({"error": "Device not found"}), 404

# Obtener información de la posición del dispositivo
positions_response = requests.get(f"{traccar_api}/positions?id={device['positionId']}")
positions = positions_response.json()

# Encontrar la posición del dispositivo
position = next((p for p in positions if p['deviceId'] == device['id']), None)
if not position:
return jsonify({"error": "Position not found"}), 404

# Obtener la distancia total
distancia_inicial = position['attributes'].get('totalDistance', 0.0)



vehiculo = Vehiculo.encontrarPorId(int(id_vehiculo))
usuario = Usuario.buscarPorId(int(id_usuario))
Expand All @@ -32,7 +59,38 @@ def desasignar():
id_asignacion = request.form.get('id_asignacion')
distancia_final = request.form.get('distancia_final')


bitacora = BitacoraAsignaciones.encontrarPorId(int(id_asignacion))

traccar_api = os.getenv('TRACCAR_API')

# Obtener información del dispositivo
devices_response = requests.get(f"{traccar_api}/devices?uniqueId={bitacora.vehiculo.id}")
devices = devices_response.json()

# Encontrar el dispositivo con el uniqueId igual al id_vehiculo
device = next((d for d in devices if d['uniqueId'] == bitacora.vehiculo.id), None)
if not device:
return jsonify({"error": "Device not found"}), 404

# Obtener información de la posición del dispositivo
positions_response = requests.get(f"{traccar_api}/positions?id={device['positionId']}")
positions = positions_response.json()

# Encontrar la posición del dispositivo
position = next((p for p in positions if p['deviceId'] == device['id']), None)
if not position:
return jsonify({"error": "Position not found"}), 404

# Obtener la distancia total
distancia_final = position['attributes'].get('totalDistance', 0.0)







BitacoraAsignaciones.agregarFechaHoraDesasignacion(int(id_asignacion), float(distancia_final))

return bitacora.serialize(), 201
Expand Down

0 comments on commit 8573ef8

Please sign in to comment.