Улучшенная организация кода
This commit is contained in:
33
app/providers/DialogProvider/useUpdateSyncTime.ts
Normal file
33
app/providers/DialogProvider/useUpdateSyncTime.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { usePublicKey } from "../AccountProvider/usePublicKey";
|
||||
import { useDatabase } from "../DatabaseProvider/useDatabase";
|
||||
import { ProtocolState } from "../ProtocolProvider/ProtocolProvider";
|
||||
import { useProtocolState } from "../ProtocolProvider/useProtocolState";
|
||||
|
||||
export function useUpdateSyncTime() : (timestamp: number) => Promise<void> {
|
||||
const [protocolState] = useProtocolState();
|
||||
const {runQuery} = useDatabase();
|
||||
const publicKey = usePublicKey();
|
||||
|
||||
/**
|
||||
* Обновляет время последней синхронизации для аккаунта
|
||||
* @param timestamp время
|
||||
*/
|
||||
const updateSyncTime = async (timestamp: number) => {
|
||||
if(protocolState == ProtocolState.SYNCHRONIZATION){
|
||||
/**
|
||||
* Если сейчас идет синхронизация то чтобы при синхронизации
|
||||
* не создавать нагрузку на базу данных
|
||||
* по постоянному обновлению, обновляем базу один раз - когда
|
||||
* приходит пакет о том что синхронизация закончилась
|
||||
*/
|
||||
return;
|
||||
}
|
||||
await runQuery(
|
||||
"INSERT INTO accounts_sync_times (account, last_sync) VALUES (?, ?) " +
|
||||
"ON CONFLICT(account) DO UPDATE SET last_sync = ? WHERE account = ?",
|
||||
[publicKey, timestamp, timestamp, publicKey]
|
||||
);
|
||||
};
|
||||
|
||||
return updateSyncTime;
|
||||
}
|
||||
Reference in New Issue
Block a user