Working log in/route guard
This commit is contained in:
@@ -6,169 +6,47 @@ from app import db
|
||||
from app.classes.delivery import (Delivery_Delivery,
|
||||
Delivery_Delivery_schema,
|
||||
)
|
||||
from app.classes.service import Service_Service
|
||||
from app.classes.auto import Auto_Delivery
|
||||
from datetime import date, timedelta, datetime
|
||||
|
||||
@deliverystatus.route("/delivered", methods=["GET"])
|
||||
def delivered_delivery():
|
||||
|
||||
# --- NEW EFFICIENT ENDPOINT ---
|
||||
@deliverystatus.route("/stats/sidebar-counts", methods=["GET"])
|
||||
def get_sidebar_counts():
|
||||
"""
|
||||
Get deliveries that have been delivered
|
||||
Efficiently gets all counts needed for the navigation sidebar in a single request.
|
||||
This combines logic from all the individual /count/* endpoints.
|
||||
"""
|
||||
try:
|
||||
now = datetime.now()
|
||||
today_date = date.today()
|
||||
|
||||
delivery_ticket = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.delivery_status == 10)
|
||||
.all())
|
||||
# Replicate the logic from each of your /count/* endpoints
|
||||
today_count = db.session.query(Delivery_Delivery).filter(Delivery_Delivery.delivery_status == 2).count()
|
||||
|
||||
tomorrow_count = db.session.query(Delivery_Delivery).filter(Delivery_Delivery.delivery_status == 3).count()
|
||||
|
||||
waiting_count = db.session.query(Delivery_Delivery).filter(Delivery_Delivery.delivery_status == 0).count()
|
||||
|
||||
pending_count = db.session.query(Delivery_Delivery).filter(Delivery_Delivery.delivery_status == 9).count()
|
||||
|
||||
automatic_count = db.session.query(Auto_Delivery).filter(Auto_Delivery.estimated_gallons_left <= 80).count()
|
||||
|
||||
upcoming_service_count = db.session.query(Service_Service).filter(Service_Service.scheduled_date >= now).count()
|
||||
|
||||
return jsonify({
|
||||
"ok": True,
|
||||
"counts": {
|
||||
"today": today_count,
|
||||
"tomorrow": tomorrow_count,
|
||||
"waiting": waiting_count,
|
||||
"pending": pending_count,
|
||||
"automatic": automatic_count,
|
||||
"upcoming_service": upcoming_service_count,
|
||||
}
|
||||
}), 200
|
||||
|
||||
delivery_schema = Delivery_Delivery_schema(many=True)
|
||||
return jsonify(delivery_schema.dump(delivery_ticket))
|
||||
|
||||
@deliverystatus.route("/count/delivered", methods=["GET"])
|
||||
def delivered_delivery_count():
|
||||
|
||||
delivery_ticket = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.delivery_status == 10)
|
||||
.count())
|
||||
|
||||
return jsonify({
|
||||
"ok": True,
|
||||
'count':delivery_ticket,
|
||||
}), 200
|
||||
|
||||
|
||||
@deliverystatus.route("/today/driver/<int:user_id>", methods=["GET"])
|
||||
def get_deliveries_driver_today(user_id):
|
||||
"""
|
||||
Get deliveries for driver that day
|
||||
"""
|
||||
get_delivery = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.driver_employee_id == user_id)
|
||||
.filter(Delivery_Delivery.expected_delivery_date == date.today())
|
||||
.all())
|
||||
|
||||
delivery_schema = Delivery_Delivery_schema(many=True)
|
||||
return jsonify(delivery_schema.dump(get_delivery))
|
||||
|
||||
|
||||
|
||||
@deliverystatus.route("/count/today", methods=["GET"])
|
||||
def get_deliveries_today_count():
|
||||
"""
|
||||
Get deliveries for driver that day
|
||||
"""
|
||||
get_delivery = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.delivery_status == 2)
|
||||
.count())
|
||||
|
||||
return jsonify({
|
||||
"ok": True,
|
||||
'count':get_delivery,
|
||||
}), 200
|
||||
|
||||
|
||||
|
||||
@deliverystatus.route("/tommorrow/driver/<int:user_id>", methods=["GET"])
|
||||
def get_deliveries_driver_tommorrow(user_id):
|
||||
"""
|
||||
Get deliveries for driver tommrrow
|
||||
"""
|
||||
tomm = date.today() + timedelta(days=1)
|
||||
get_delivery = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.driver_employee_id == user_id)
|
||||
.filter(Delivery_Delivery.delivery_status == 3)
|
||||
.all())
|
||||
|
||||
delivery_schema = Delivery_Delivery_schema(many=True)
|
||||
return jsonify(delivery_schema.dump(get_delivery))
|
||||
|
||||
|
||||
|
||||
@deliverystatus.route("/count/tommorrow", methods=["GET"])
|
||||
def get_deliveries_driver_tommorrow_count():
|
||||
"""
|
||||
"""
|
||||
get_delivery = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.delivery_status == 3)
|
||||
.count())
|
||||
|
||||
return jsonify({
|
||||
"ok": True,
|
||||
'count':get_delivery,
|
||||
}), 200
|
||||
|
||||
|
||||
|
||||
@deliverystatus.route("/waiting/driver/<int:user_id>", methods=["GET"])
|
||||
def get_deliveries_driver_waiting(user_id):
|
||||
"""
|
||||
waiting deliveries scheduled out
|
||||
"""
|
||||
get_delivery = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.driver_employee_id == user_id)
|
||||
.filter(Delivery_Delivery.delivery_status == 0)
|
||||
.all())
|
||||
|
||||
delivery_schema = Delivery_Delivery_schema(many=True)
|
||||
return jsonify(delivery_schema.dump(get_delivery))
|
||||
|
||||
|
||||
|
||||
@deliverystatus.route("/count/automatic", methods=["GET"])
|
||||
def get_deliveries_automatic_count():
|
||||
"""
|
||||
|
||||
"""
|
||||
|
||||
autos = (db.session
|
||||
.query(Auto_Delivery)
|
||||
.filter(Auto_Delivery.estimated_gallons_left <= 80)
|
||||
.count())
|
||||
|
||||
|
||||
return jsonify({
|
||||
"ok": True,
|
||||
'count':autos,
|
||||
}), 200
|
||||
|
||||
|
||||
|
||||
@deliverystatus.route("/count/waiting", methods=["GET"])
|
||||
def get_deliveries_waiting_count():
|
||||
"""
|
||||
waiting deliveries scheduled out
|
||||
"""
|
||||
tomm = date.today() + timedelta(days=1)
|
||||
get_delivery = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.delivery_status == 0)
|
||||
.count())
|
||||
|
||||
|
||||
return jsonify({
|
||||
"ok": True,
|
||||
'count':get_delivery,
|
||||
}), 200
|
||||
|
||||
|
||||
@deliverystatus.route("/count/pending", methods=["GET"])
|
||||
def get_deliveries_pending_count():
|
||||
"""
|
||||
|
||||
"""
|
||||
|
||||
get_delivery = (db.session
|
||||
.query(Delivery_Delivery)
|
||||
.filter(Delivery_Delivery.delivery_status == 9)
|
||||
.count())
|
||||
|
||||
|
||||
return jsonify({
|
||||
"ok": True,
|
||||
'count':get_delivery,
|
||||
}), 200
|
||||
except Exception as e:
|
||||
# Basic error handling
|
||||
return jsonify({"ok": False, "error": str(e)}), 500
|
||||
Reference in New Issue
Block a user