68 lines
2.4 KiB
Markdown
68 lines
2.4 KiB
Markdown
# Step 2 Backward Compatible Fix
|
|
|
|
## Problem
|
|
|
|
After updating Step 2 and Step 6 for database migration, the "existing analysis cache" feature in Step 2 stopped working because we have two different `session_id` strategies:
|
|
|
|
1. **Legacy**: SHA256 hash of Clerk user_id → `session_id = 724716666`
|
|
2. **New**: `OnboardingSession.id` (auto-increment) → `session_id = 1, 2, 3...`
|
|
|
|
## Non-Breaking Solution
|
|
|
|
Made the `check-existing` endpoint **support BOTH approaches** for backward compatibility.
|
|
|
|
### Change Made
|
|
|
|
**File**: `backend/api/component_logic.py` (Line 660-696)
|
|
|
|
```python
|
|
@router.get("/style-detection/check-existing/{website_url:path}")
|
|
async def check_existing_analysis(website_url, current_user):
|
|
"""Check if analysis exists (supports both session_id types)."""
|
|
|
|
# Try Approach 1: SHA256 hash (legacy)
|
|
user_id_int = clerk_user_id_to_int(user_id)
|
|
existing_analysis = analysis_service.check_existing_analysis(user_id_int, website_url)
|
|
|
|
# Try Approach 2: OnboardingSession.id (new) if not found
|
|
if not existing_analysis or not existing_analysis.get('exists'):
|
|
onboarding_service = OnboardingDatabaseService()
|
|
session = onboarding_service.get_session_by_user(user_id, db_session)
|
|
if session:
|
|
existing_analysis = analysis_service.check_existing_analysis(session.id, website_url)
|
|
|
|
return existing_analysis
|
|
```
|
|
|
|
## Benefits
|
|
|
|
✅ **No breaking changes** - Steps 1-5 continue working as before
|
|
✅ **Backward compatible** - Finds analysis saved with either session_id type
|
|
✅ **Cache works** - Existing analysis feature now works correctly
|
|
✅ **Step 6 works** - Can retrieve data saved via OnboardingSession approach
|
|
|
|
## Testing
|
|
|
|
1. **Restart backend** to load the updated endpoint
|
|
2. **Go to Step 2** and enter a website URL you've analyzed before
|
|
3. **Verify** you see the "Use existing analysis?" dialog
|
|
4. **Click "Use Existing"** to load previous analysis
|
|
5. **Navigate to Step 6** to verify all data displays correctly
|
|
|
|
## What This Fixes
|
|
|
|
- ✅ Existing analysis cache now works
|
|
- ✅ Step 6 can retrieve website analysis
|
|
- ✅ No impact on Steps 1, 3, 4, 5
|
|
- ✅ Backward compatible with old data
|
|
|
|
## Status
|
|
|
|
✅ **Fixed**: Backward-compatible endpoint update applied
|
|
⏳ **Pending**: Restart backend and test
|
|
|
|
---
|
|
|
|
**Next Action**: Restart backend server and test the existing analysis feature in Step 2.
|
|
|