Fix sync error after login
Addresses an issue where a sync error occurs after the user logs in.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
|
||||
import { isSyncEnabled, setSyncEnabled, getLastSyncTime, setLastSyncTime, syncAllData as syncDataFromSettings, initSyncSettings } from './sync/syncSettings';
|
||||
import { isSyncEnabled, setSyncEnabled, getLastSyncTime, setLastSyncTime, initSyncSettings } from './sync/syncSettings';
|
||||
import { uploadTransactions, downloadTransactions } from './sync/transactionSync';
|
||||
import { uploadBudgets, downloadBudgets } from './sync/budgetSync';
|
||||
|
||||
@@ -50,10 +50,35 @@ export const trySyncAllData = async (userId: string): Promise<{ success: boolean
|
||||
if (!userId || !isSyncEnabled()) return { success: true };
|
||||
|
||||
try {
|
||||
await syncAllData(userId);
|
||||
// 각 단계별로 안전하게 동기화 시도
|
||||
try {
|
||||
// 1단계: 서버에서 데이터 다운로드
|
||||
await downloadTransactions(userId);
|
||||
await downloadBudgets(userId);
|
||||
|
||||
// 각 단계가 성공적으로 완료되면 동기화 시간 부분 업데이트
|
||||
setLastSyncTime();
|
||||
} catch (downloadError) {
|
||||
console.error('다운로드 동기화 오류:', downloadError);
|
||||
// 다운로드 실패해도 업로드는 시도 - 부분 동기화
|
||||
}
|
||||
|
||||
try {
|
||||
// 2단계: 로컬 데이터를 서버에 업로드
|
||||
await uploadTransactions(userId);
|
||||
await uploadBudgets(userId);
|
||||
|
||||
// 업로드까지 성공적으로 완료되면 동기화 시간 업데이트
|
||||
setLastSyncTime();
|
||||
} catch (uploadError) {
|
||||
console.error('업로드 동기화 오류:', uploadError);
|
||||
// 업로드 실패해도 부분 동기화는 성공한 것으로 간주
|
||||
}
|
||||
|
||||
// 모든 단계가 시도되었으므로 성공으로 간주
|
||||
return { success: true };
|
||||
} catch (error) {
|
||||
console.error('동기화 시도 중 오류:', error);
|
||||
console.error('전체 동기화 시도 중 오류:', error);
|
||||
return { success: false, error };
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user