feat: Add endpoint to fix empty case titles from vtiger_data (v1.3.113)
This commit is contained in:
parent
0b9765c5a2
commit
0974f41bd1
@ -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):
|
||||
"""
|
||||
|
||||
Loading…
Reference in New Issue
Block a user