12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import NetInfo, { NetInfoState } from '@react-native-community/netinfo';
- import { StoreType, storage } from 'src/storage';
- import { fetchLpi, fetchInHistory, fetchInMemoriam, updateMaster } from '@api/ranking';
- import { initOfflineSetup } from './tilesService';
- import { downloadFlags } from './flagsService';
- import { fetchAndSaveAllTypesAndMasters } from './unMastersService';
- import { fetchAndSaveStatistics } from './statisticsService';
- import { saveTriumphsData } from './triumphsService';
- import { saveSeriesRankingData } from './seriesRankingService';
- import { updateDarePlacesDb, updateNmRegionsDb } from 'src/db';
- import { cleanCache, deleteAvatarsDirectory } from './cacheService';
- const lastUpdateNmRegions =
- (storage.get('lastUpdateNmRegions', StoreType.STRING) as string) || '1990-01-01';
- const lastUpdateDarePlaces =
- (storage.get('lastUpdateDarePlaces', StoreType.STRING) as string) || '1990-01-01';
- export const checkInternetConnection = async (): Promise<NetInfoState> => {
- const state = await NetInfo.fetch();
- return state;
- };
- export const syncDataWithServer = async (): Promise<void> => {
- const { isConnected } = await checkInternetConnection();
- if (isConnected) {
- await updateDarePlacesDb(lastUpdateDarePlaces);
- await updateMasterRanking();
- await updateNmRegionsDb(lastUpdateNmRegions);
- await downloadFlags();
- await initOfflineSetup();
- }
- };
- export const setupDatabaseAndSync = async (): Promise<void> => {
- await syncDataWithServer();
- cleanCache();
- deleteAvatarsDirectory();
- };
- export const updateMasterRanking = async () => {
- const token = (storage.get('token', StoreType.STRING) as string) || '';
- await updateMaster();
- storage.remove('masterRanking');
- const dataLpi = await fetchLpi();
- if (dataLpi && dataLpi?.data) {
- storage.set('lpiRanking', JSON.stringify(dataLpi.data));
- }
- const dataInHistory = await fetchInHistory();
- if (dataInHistory && dataInHistory?.data) {
- storage.set('inHistoryRanking', JSON.stringify(dataInHistory.data));
- }
- const dataInMemoriam = await fetchInMemoriam();
- if (dataInMemoriam && dataInMemoriam?.data) {
- storage.set('inMemoriamRanking', JSON.stringify(dataInMemoriam.data));
- }
- await fetchAndSaveStatistics(token);
- await fetchAndSaveAllTypesAndMasters();
- await saveTriumphsData();
- await saveSeriesRankingData();
- };
- export default setupDatabaseAndSync;
|