Updated claude big changes
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
import logging
|
||||
from flask import request, jsonify
|
||||
from flask import request
|
||||
from app.service import service
|
||||
from app import db
|
||||
from app.common.responses import error_response, success_response
|
||||
from datetime import datetime, date, timedelta
|
||||
from app.classes.customer import (Customer_Customer)
|
||||
from app.classes.service import (Service_Service,
|
||||
@@ -10,6 +11,7 @@ from app.classes.service import (Service_Service,
|
||||
)
|
||||
from app.classes.auto import Auto_Delivery
|
||||
from flask_login import login_required
|
||||
from app.constants import DEFAULT_PAGE_SIZE
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -52,11 +54,11 @@ def get_all_service_calls():
|
||||
"borderColor": event_colors.get("backgroundColor")
|
||||
}
|
||||
calendar_events.append(event_data)
|
||||
|
||||
return jsonify(calendar_events), 200
|
||||
|
||||
return success_response({"events": calendar_events})
|
||||
except Exception as e:
|
||||
logger.error(f"Error in /service/all: {e}")
|
||||
return jsonify(error=str(e)), 500
|
||||
return error_response(str(e), 500)
|
||||
|
||||
|
||||
# --- THIS IS THE FIX ---
|
||||
@@ -73,15 +75,14 @@ def get_upcoming_service_calls():
|
||||
Service_Service.query
|
||||
.filter(Service_Service.scheduled_date >= now)
|
||||
.order_by(Service_Service.scheduled_date.asc())
|
||||
.limit(100)
|
||||
.limit(DEFAULT_PAGE_SIZE)
|
||||
.all()
|
||||
)
|
||||
|
||||
service_schema = Service_Service_schema(many=True)
|
||||
result = service_schema.dump(upcoming_services)
|
||||
|
||||
|
||||
return jsonify(result), 200
|
||||
|
||||
return success_response({"services": result})
|
||||
|
||||
|
||||
@service.route("/past", methods=["GET"])
|
||||
@@ -94,14 +95,14 @@ def get_past_service_calls():
|
||||
Service_Service.query
|
||||
.filter(Service_Service.scheduled_date < datetime.combine(date.today(), datetime.min.time()))
|
||||
.order_by(Service_Service.scheduled_date.asc())
|
||||
.limit(100)
|
||||
.limit(DEFAULT_PAGE_SIZE)
|
||||
.all()
|
||||
)
|
||||
|
||||
service_schema = Service_Service_schema(many=True)
|
||||
result = service_schema.dump(past_services)
|
||||
|
||||
return jsonify(result), 200
|
||||
return success_response({"services": result})
|
||||
|
||||
|
||||
@service.route("/today", methods=["GET"])
|
||||
@@ -117,14 +118,14 @@ def get_today_service_calls():
|
||||
.filter(Service_Service.scheduled_date >= start_of_today)
|
||||
.filter(Service_Service.scheduled_date < start_of_tomorrow)
|
||||
.order_by(Service_Service.scheduled_date.asc())
|
||||
.limit(100)
|
||||
.limit(DEFAULT_PAGE_SIZE)
|
||||
.all()
|
||||
)
|
||||
|
||||
service_schema = Service_Service_schema(many=True)
|
||||
result = service_schema.dump(today_services)
|
||||
|
||||
return jsonify(result), 200
|
||||
return success_response({"services": result})
|
||||
|
||||
|
||||
@service.route("/upcoming/count", methods=["GET"])
|
||||
@@ -133,9 +134,9 @@ def get_upcoming_service_calls_count():
|
||||
now = datetime.now()
|
||||
try:
|
||||
count = (db.session.query(Service_Service).filter(Service_Service.scheduled_date >= now).count())
|
||||
return jsonify({"count": count}), 200
|
||||
return success_response({"count": count})
|
||||
except Exception as e:
|
||||
return jsonify({"error": str(e)}), 500
|
||||
return error_response(str(e), 500)
|
||||
|
||||
@service.route("/for-customer/<int:customer_id>", methods=["GET"])
|
||||
@login_required
|
||||
@@ -143,16 +144,16 @@ def get_service_calls_for_customer(customer_id):
|
||||
service_records = (Service_Service.query.filter_by(customer_id=customer_id).order_by(Service_Service.scheduled_date.desc()).all())
|
||||
service_schema = Service_Service_schema(many=True)
|
||||
result = service_schema.dump(service_records)
|
||||
return jsonify(result), 200
|
||||
return success_response({"services": result})
|
||||
|
||||
@service.route("/create", methods=["POST"])
|
||||
@login_required
|
||||
def create_service_call():
|
||||
data = request.get_json()
|
||||
if not data: return jsonify({"error": "No data provided"}), 400
|
||||
if not data: return error_response("No data provided", 400)
|
||||
cus_id=data.get('customer_id')
|
||||
get_customer = (db.session.query(Customer_Customer).filter(Customer_Customer.id == cus_id).first())
|
||||
if not get_customer: return jsonify({"error": f"Customer with id {cus_id} not found."}), 404
|
||||
if not get_customer: return error_response(f"Customer with id {cus_id} not found.", 404)
|
||||
scheduled_datetime_str = data.get('expected_delivery_date')
|
||||
scheduled_datetime_obj = datetime.fromisoformat(scheduled_datetime_str)
|
||||
new_service_call = Service_Service(
|
||||
@@ -164,7 +165,7 @@ def create_service_call():
|
||||
)
|
||||
db.session.add(new_service_call)
|
||||
db.session.commit()
|
||||
return jsonify({ "ok": True, "id": new_service_call.id }), 201
|
||||
return success_response({"id": new_service_call.id}, 201)
|
||||
|
||||
@service.route("/update-cost/<int:id>", methods=["PUT"])
|
||||
@login_required
|
||||
@@ -180,18 +181,18 @@ def update_service_cost(id):
|
||||
# Get request data - only service_cost
|
||||
data = request.get_json()
|
||||
if not data:
|
||||
return jsonify({"error": "No data provided"}), 400
|
||||
return error_response("No data provided", 400)
|
||||
|
||||
# Extract and validate the service_cost
|
||||
new_cost = data.get('service_cost')
|
||||
if new_cost is None:
|
||||
return jsonify({"error": "service_cost is required"}), 400
|
||||
return error_response("service_cost is required", 400)
|
||||
|
||||
# Convert to float for validation
|
||||
try:
|
||||
new_cost_float = float(new_cost)
|
||||
except (ValueError, TypeError):
|
||||
return jsonify({"error": "service_cost must be a valid number"}), 400
|
||||
return error_response("service_cost must be a valid number", 400)
|
||||
|
||||
# Update the service_cost
|
||||
service_record.service_cost = new_cost_float
|
||||
@@ -200,24 +201,23 @@ def update_service_cost(id):
|
||||
db.session.commit()
|
||||
|
||||
# Return success response
|
||||
return jsonify({
|
||||
"ok": True,
|
||||
return success_response({
|
||||
"service_id": id,
|
||||
"service_cost_updated": new_cost_float,
|
||||
"message": f"Service {id} cost updated to ${new_cost_float}"
|
||||
}), 200
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
logger.error(f"Error updating service cost for service {id}: {e}")
|
||||
return jsonify({"error": str(e)}), 500
|
||||
return error_response(str(e), 500)
|
||||
|
||||
@service.route("/update/<int:id>", methods=["PUT"])
|
||||
@login_required
|
||||
def update_service_call(id):
|
||||
service_record = Service_Service.query.get_or_404(id)
|
||||
data = request.get_json()
|
||||
if not data: return jsonify({"error": "No data provided"}), 400
|
||||
if not data: return error_response("No data provided", 400)
|
||||
scheduled_datetime_str = data.get('scheduled_date')
|
||||
if scheduled_datetime_str:
|
||||
service_record.scheduled_date = datetime.fromisoformat(scheduled_datetime_str)
|
||||
@@ -228,10 +228,10 @@ def update_service_call(id):
|
||||
try:
|
||||
db.session.commit()
|
||||
service_schema = Service_Service_schema(many=False)
|
||||
return jsonify({"ok": True, "service": service_schema.dump(service_record)}), 200
|
||||
return success_response({"service": service_schema.dump(service_record)})
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
return jsonify({"error": str(e)}), 500
|
||||
return error_response(str(e), 500)
|
||||
|
||||
|
||||
# Service Plans CRUD endpoints
|
||||
@@ -254,9 +254,9 @@ def get_active_service_plans():
|
||||
plan['customer_address'] = customer.customer_address
|
||||
plan['customer_town'] = customer.customer_town
|
||||
|
||||
return jsonify(result), 200
|
||||
return success_response({"plans": result})
|
||||
except Exception as e:
|
||||
return jsonify({"error": str(e)}), 500
|
||||
return error_response(str(e), 500)
|
||||
|
||||
|
||||
@service.route("/plans/customer/<int:customer_id>", methods=["GET"])
|
||||
@@ -269,11 +269,11 @@ def get_customer_service_plan(customer_id):
|
||||
plan = Service_Plans.query.filter_by(customer_id=customer_id).first()
|
||||
if plan:
|
||||
plan_schema = Service_Plans_schema()
|
||||
return jsonify(plan_schema.dump(plan)), 200
|
||||
return success_response({"plan": plan_schema.dump(plan)})
|
||||
else:
|
||||
return jsonify(None), 200
|
||||
return success_response({"plan": None})
|
||||
except Exception as e:
|
||||
return jsonify({"error": str(e)}), 500
|
||||
return error_response(str(e), 500)
|
||||
|
||||
|
||||
@service.route("/plans/create", methods=["POST"])
|
||||
@@ -284,7 +284,7 @@ def create_service_plan():
|
||||
"""
|
||||
data = request.get_json()
|
||||
if not data:
|
||||
return jsonify({"error": "No data provided"}), 400
|
||||
return error_response("No data provided", 400)
|
||||
|
||||
try:
|
||||
new_plan = Service_Plans(
|
||||
@@ -297,10 +297,10 @@ def create_service_plan():
|
||||
db.session.commit()
|
||||
|
||||
plan_schema = Service_Plans_schema()
|
||||
return jsonify({"ok": True, "plan": plan_schema.dump(new_plan)}), 201
|
||||
return success_response({"plan": plan_schema.dump(new_plan)}, 201)
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
return jsonify({"error": str(e)}), 500
|
||||
return error_response(str(e), 500)
|
||||
|
||||
|
||||
@service.route("/plans/update/<int:customer_id>", methods=["PUT"])
|
||||
@@ -311,7 +311,7 @@ def update_service_plan(customer_id):
|
||||
"""
|
||||
data = request.get_json()
|
||||
if not data:
|
||||
return jsonify({"error": "No data provided"}), 400
|
||||
return error_response("No data provided", 400)
|
||||
|
||||
try:
|
||||
plan = Service_Plans.query.filter_by(customer_id=customer_id).first()
|
||||
@@ -328,10 +328,10 @@ def update_service_plan(customer_id):
|
||||
db.session.commit()
|
||||
|
||||
plan_schema = Service_Plans_schema()
|
||||
return jsonify({"ok": True, "plan": plan_schema.dump(plan)}), 200
|
||||
return success_response({"plan": plan_schema.dump(plan)})
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
return jsonify({"error": str(e)}), 500
|
||||
return error_response(str(e), 500)
|
||||
|
||||
|
||||
@service.route("/plans/delete/<int:customer_id>", methods=["DELETE"])
|
||||
@@ -343,21 +343,21 @@ def delete_service_plan(customer_id):
|
||||
try:
|
||||
plan = Service_Plans.query.filter_by(customer_id=customer_id).first()
|
||||
if not plan:
|
||||
return jsonify({"error": "Service plan not found"}), 404
|
||||
return error_response("Service plan not found", 404)
|
||||
|
||||
db.session.delete(plan)
|
||||
db.session.commit()
|
||||
return jsonify({"ok": True, "message": "Service plan deleted successfully"}), 200
|
||||
return success_response({"message": "Service plan deleted successfully"})
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
return jsonify({"error": str(e)}), 500
|
||||
return error_response(str(e), 500)
|
||||
|
||||
@service.route("/<int:id>", methods=["GET"])
|
||||
@login_required
|
||||
def get_service_by_id(id):
|
||||
service_record = Service_Service.query.get_or_404(id)
|
||||
service_schema = Service_Service_schema()
|
||||
return jsonify({"ok": True, "service": service_schema.dump(service_record)}), 200
|
||||
return success_response({"service": service_schema.dump(service_record)})
|
||||
|
||||
@service.route("/delete/<int:id>", methods=["DELETE"])
|
||||
@login_required
|
||||
@@ -366,10 +366,10 @@ def delete_service_call(id):
|
||||
try:
|
||||
db.session.delete(service_record)
|
||||
db.session.commit()
|
||||
return jsonify({"ok": True, "message": "Service deleted successfully"}), 200
|
||||
return success_response({"message": "Service deleted successfully"})
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
return jsonify({"error": str(e)}), 500
|
||||
return error_response(str(e), 500)
|
||||
|
||||
@service.route("/parts/customer/<int:customer_id>", methods=["GET"])
|
||||
@login_required
|
||||
@@ -377,12 +377,12 @@ def get_service_parts(customer_id):
|
||||
parts = Service_Parts.query.filter_by(customer_id=customer_id).first()
|
||||
if parts:
|
||||
parts_schema = Service_Parts_schema()
|
||||
return jsonify(parts_schema.dump(parts)), 200
|
||||
return success_response({"parts": parts_schema.dump(parts)})
|
||||
else:
|
||||
return jsonify({
|
||||
return success_response({"parts": {
|
||||
"customer_id": customer_id, "oil_filter": "", "oil_filter_2": "",
|
||||
"oil_nozzle": "", "oil_nozzle_2": "", "hot_water_tank": 0
|
||||
}), 200
|
||||
}})
|
||||
|
||||
@service.route("/parts/update/<int:customer_id>", methods=["POST"])
|
||||
@login_required
|
||||
@@ -391,7 +391,7 @@ def update_service_parts(customer_id):
|
||||
data = request.get_json()
|
||||
|
||||
if not data:
|
||||
return jsonify({"error": "No data provided"}), 400
|
||||
return error_response("No data provided", 400)
|
||||
|
||||
get_customer = db.session.query(Customer_Customer).filter(Customer_Customer.id == customer_id).first()
|
||||
parts = Service_Parts.query.filter_by(customer_id=customer_id).first()
|
||||
@@ -412,11 +412,10 @@ def update_service_parts(customer_id):
|
||||
db.session.add(get_auto)
|
||||
|
||||
db.session.commit()
|
||||
return jsonify({"ok": True, "message": "Service parts updated successfully"}), 200
|
||||
return success_response({"message": "Service parts updated successfully"})
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
return jsonify({"error": str(e)}), 500
|
||||
|
||||
return error_response(str(e), 500)
|
||||
|
||||
|
||||
@service.route("/payment/<int:service_id>/<int:payment_type>", methods=["PUT"])
|
||||
@@ -424,7 +423,7 @@ def update_service_parts(customer_id):
|
||||
def process_service_payment(service_id, payment_type):
|
||||
service = db.session.query(Service_Service).filter(Service_Service.id == service_id).first()
|
||||
if not service:
|
||||
return jsonify({"ok": False, "error": "Service not found"}), 404
|
||||
return error_response("Service not found", 404)
|
||||
|
||||
# Set payment columns as specified
|
||||
service.payment_type = payment_type # e.g., 1 for Tiger
|
||||
@@ -433,7 +432,7 @@ def process_service_payment(service_id, payment_type):
|
||||
|
||||
try:
|
||||
db.session.commit()
|
||||
return jsonify({"ok": True}), 200
|
||||
return success_response()
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
return jsonify({"error": str(e)}), 500
|
||||
return error_response(str(e), 500)
|
||||
|
||||
Reference in New Issue
Block a user