feat: Add endpoint to fix empty case titles from vtiger_data (v1.3.113)

This commit is contained in:
Christian 2026-01-05 17:06:44 +01:00
parent 0b9765c5a2
commit 0974f41bd1
2 changed files with 56 additions and 1 deletions

View File

@ -1 +1 @@
1.3.112
1.3.113

View File

@ -128,6 +128,61 @@ async def test_vtiger_connection():
raise HTTPException(status_code=500, detail=str(e))
@router.post("/sync/fix-empty-case-titles", tags=["Sync"])
async def fix_empty_case_titles():
"""
🔧 Opdater tomme case titles fra vtiger_data.
Henter titles fra vtiger_data JSON for cases der har tom eller generisk title.
"""
try:
logger.info("🔧 Fixing empty case titles...")
# Find cases med tomme eller generiske titles
cases_query = """
SELECT id, vtiger_id, title,
vtiger_data->>'title' as vtiger_title,
vtiger_data->>'ticket_title' as vtiger_ticket_title
FROM tmodule_cases
WHERE title IS NULL
OR TRIM(title) = ''
OR LOWER(title) IN ('ingen titel', 'no title', 'none')
"""
cases = execute_query(cases_query)
if not cases:
return {
"success": True,
"message": "No cases with empty titles found",
"updated": 0
}
updated_count = 0
for case in cases:
# Prioriter title fra vtiger_data
new_title = case.get('vtiger_title') or case.get('vtiger_ticket_title')
if new_title and new_title.strip():
execute_query(
"UPDATE tmodule_cases SET title = %s WHERE id = %s",
(new_title, case['id'])
)
updated_count += 1
logger.info(f"✅ Updated case {case['vtiger_id']}: '{new_title}'")
return {
"success": True,
"message": f"Updated {updated_count} cases",
"total_checked": len(cases),
"updated": updated_count
}
except Exception as e:
logger.error(f"❌ Fix empty titles failed: {e}")
raise HTTPException(status_code=500, detail=str(e))
@router.post("/sync/manual-link-customer", tags=["Sync"])
async def manual_link_customer(tmodule_customer_id: int, hub_customer_id: int):
"""