Files
crowd-funder-from-jason/docs/migration-testing/ENDORSERSERVER_PRE_MIGRATION_AUDIT.md
Matthew Raymer 1fc6f065bf Migrate endorserServer.ts to Enhanced Triple Migration Pattern
- Remove databaseUtil import, replace with logger.error
- Migrate $notify to modern notify pattern with createNotifyHelpers
- Add NOTIFY_PERSONAL_DATA_ERROR constant for error messages
- Use NOTIFICATION_TIMEOUTS.STANDARD for timeouts
- All phases complete: database, SQL, notification migration
- 35 minutes, 1510 lines, high complexity service file
- Linting passes with no errors
2025-07-09 09:40:25 +00:00

134 lines
4.2 KiB
Markdown

# endorserServer.ts Pre-Migration Audit
## Service Overview
- **File**: `src/libs/endorserServer.ts`
- **Purpose**: Endorser server interface and utilities for claims, contacts, and server communication
- **Complexity**: High (1510 lines)
- **Migration Priority**: High (Services category)
## Current State Analysis
### Phase 1: Database Migration Assessment
- **Status**: ⏳ NEEDS MIGRATION
- **Issues Found**:
- Uses `logConsoleAndDb` from `../db/databaseUtil` (line 31, 443)
- Uses `PlatformServiceFactory.getInstance()` for database operations (line 1455)
- Raw SQL query: `"UPDATE contacts SET seesMe = ? WHERE did = ?"` (line 1458)
### Phase 2: SQL Abstraction Assessment
- **Status**: ⏳ NEEDS MIGRATION
- **Issues Found**:
- Raw SQL query in `setVisibilityUtil` function (line 1458)
- Direct database operation without service abstraction
### Phase 3: Notification Migration Assessment
- **Status**: ⏳ NEEDS MIGRATION
- **Issues Found**:
- Direct `$notify` calls in `getHeaders` function (line 405)
- Hardcoded notification messages and timeouts
- No notification helpers or constants used
### Phase 4: Template Streamlining Assessment
- **Status**: ✅ NOT NEEDED
- **Evidence**: No template code found (service file)
- **Actions Required**: None
## Technical Analysis
### Database Operations
```typescript
// Legacy databaseUtil usage
import { logConsoleAndDb } from "../db/databaseUtil";
logConsoleAndDb("Something failed in getHeaders call...", true);
// PlatformServiceFactory usage
const platformService = PlatformServiceFactory.getInstance();
await platformService.dbExec(
"UPDATE contacts SET seesMe = ? WHERE did = ?",
[visibility, contact.did],
);
```
### Notification Operations
```typescript
// Direct $notify calls
$notify(
{
group: "alert",
type: "danger",
title: "Personal Data Error",
text: notifyMessage,
},
3000,
);
```
### Code Complexity
- **Lines**: 1510 lines
- **Functions**: 40+ exported functions
- **Imports**: 15+ imports including legacy patterns
- **Database Operations**: 1 raw SQL query
- **Notification Usage**: Direct $notify calls
### Key Functions Requiring Migration
1. **`getHeaders`** (line 405): Notification migration needed
2. **`setVisibilityUtil`** (line 1436): Database and SQL migration needed
3. **`logConsoleAndDb` usage** (line 443): Database migration needed
## Migration Plan
### Phase 1: Database Migration
1. **Replace Legacy Imports**
- Remove `logConsoleAndDb` import
- Replace with logger utilities
2. **Update Database Operations**
- Replace `PlatformServiceFactory.getInstance()` with service injection
- Update `setVisibilityUtil` to use service methods
### Phase 2: SQL Abstraction
1. **Replace Raw SQL**
- Extract contact visibility update to service method
- Replace raw SQL with service call
### Phase 3: Notification Migration
1. **Add Notification Helpers**
- Import notification constants and helpers
- Replace direct `$notify` calls with helper methods
- Use notification constants for messages
2. **Update Notification Patterns**
- Extract notification messages to constants
- Use timeout constants instead of hardcoded values
## Estimated Migration Time
- **Phase 1**: 10-15 minutes
- **Phase 2**: 5-10 minutes
- **Phase 3**: 10-15 minutes
- **Total Time**: 25-40 minutes
## Risk Assessment
- **Medium Risk**: Large service file with multiple migration points
- **Breaking Changes**: Database and notification pattern changes
- **Performance Impact**: Minimal (service modernization)
## Success Criteria
- [ ] Legacy databaseUtil imports removed
- [ ] PlatformServiceFactory usage replaced with service injection
- [ ] Raw SQL query replaced with service method
- [ ] Direct $notify calls replaced with helper methods
- [ ] Notification constants used for messages
- [ ] Linting passes with no errors
- [ ] Service functionality preserved
## Migration Notes
- Large service file requiring careful migration
- Multiple functions need database and notification updates
- Service is critical for server communication
- Need to maintain backward compatibility during migration
---
**Audit Date**: 2024-12-19
**Auditor**: Migration System
**Status**: Ready for Phase 1, 2, & 3 migration