Skip to content

Commit 5b297c4

Browse files
committed
tickets in popup ansehen
1 parent 96eeb6c commit 5b297c4

3 files changed

Lines changed: 429 additions & 101 deletions

File tree

backend/app.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,41 @@ async def get_csv_ticket(ticket_id: str):
900900
return jsonify(result), 200
901901

902902

903+
@app.route("/api/csv-tickets/by-incident/<incident_id>", methods=["GET"])
904+
async def get_csv_ticket_by_incident(incident_id: str):
905+
"""
906+
Get one CSV ticket by Incident ID (e.g., INC000016346).
907+
908+
Query params:
909+
- fields: optional comma-separated list of fields to include
910+
"""
911+
ticket = _csv_ticket_service.get_ticket_by_incident_id(incident_id)
912+
if ticket is None:
913+
return jsonify({"error": "Ticket not found"}), 404
914+
915+
fields_param = request.args.get("fields", "")
916+
if fields_param:
917+
selected_fields = [f.strip() for f in fields_param.split(",") if f.strip()]
918+
else:
919+
selected_fields = list(ticket.model_fields.keys())
920+
921+
result = {}
922+
for field in selected_fields:
923+
val = getattr(ticket, field, None)
924+
if val is None:
925+
result[field] = None
926+
elif hasattr(val, "value"):
927+
result[field] = val.value
928+
elif hasattr(val, "isoformat"):
929+
result[field] = val.isoformat()
930+
elif hasattr(val, "hex"):
931+
result[field] = str(val)
932+
else:
933+
result[field] = val
934+
935+
return jsonify(result), 200
936+
937+
903938
@app.route("/api/csv-tickets/stats", methods=["GET"])
904939
async def get_csv_ticket_stats():
905940
"""Get statistics about CSV tickets."""

0 commit comments

Comments
 (0)