Browse Source

Merge branch 'sync-in-memoriam' of SashaGoncharov19/nomadmania-app into dev

Viktoriia 1 year ago
parent
commit
49322fd2c6

+ 7 - 1
src/database/index.ts

@@ -1,7 +1,7 @@
 import * as SQLite from 'expo-sqlite';
 import NetInfo, { NetInfoState } from '@react-native-community/netinfo';
 import { storage } from 'src/storage';
-import { fetchLimitedRanking, fetchLpi, fetchInHistory } from '@api/ranking';
+import { fetchLimitedRanking, fetchLpi, fetchInHistory, fetchInMemoriam } from '@api/ranking';
 
 const db = SQLite.openDatabase('nomadManiaDb.db');
 
@@ -68,6 +68,12 @@ const updateMasterRanking = async () => {
   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));
+  }
 };
 
 export default setupDatabaseAndSync;

+ 1 - 0
src/modules/api/ranking/queries/index.ts

@@ -2,3 +2,4 @@ export * from './use-post-get-limited-ranking';
 export * from './use-post-get-full-ranking';
 export * from './use-post-get-lpi';
 export * from './use-post-get-in-history';
+export * from './use-post-get-in-memoriam';

+ 18 - 0
src/modules/api/ranking/queries/use-post-get-in-memoriam.tsx

@@ -0,0 +1,18 @@
+import { rankingQueryKeys } from '../ranking-query-keys';
+import { type PostGetRanking, rankingApi } from '../ranking-api';
+import { queryClient } from 'src/utils/queryClient';
+
+export const fetchInMemoriam = async () => {
+  try {
+    const data: PostGetRanking = await queryClient.fetchQuery({
+      queryKey: rankingQueryKeys.getInMemoriam(),
+      queryFn: () => rankingApi.getInMemoriam().then((res) => res.data),
+      gcTime: 0,
+      staleTime: 0
+    });
+
+    return data;
+  } catch (error) {
+    console.error('Failed to fetch in-memoriam data:', error);
+  }
+};

+ 2 - 1
src/modules/api/ranking/ranking-api.tsx

@@ -53,5 +53,6 @@ export const rankingApi = {
   getLimitedRanking: () => request.postForm<PostGetRanking>(API.GET_LIMITED_RANKING),
   getFullRanking: () => request.postForm<PostGetRanking>(API.GET_FULL_RANKING),
   getLpi: () => request.postForm<PostGetRanking>(API.GET_LPI),
-  getInHistory: () => request.postForm<PostGetRanking>(API.GET_IN_HISTORY)
+  getInHistory: () => request.postForm<PostGetRanking>(API.GET_IN_HISTORY),
+  getInMemoriam: () => request.postForm<PostGetRanking>(API.GET_IN_MEMORIAM)
 };

+ 2 - 1
src/modules/api/ranking/ranking-query-keys.tsx

@@ -2,5 +2,6 @@ export const rankingQueryKeys = {
   getLimitedRanking: () => ['getLimitedRanking'] as const,
   getFullRanking: () => ['getFullRanking'] as const,
   getLpi: () => ['getLpi'] as const,
-  getInHistory: () => ['getInHistory'] as const
+  getInHistory: () => ['getInHistory'] as const,
+  getInMemoriam: () => ['getInMemoriam'] as const
 };

+ 1 - 0
src/screens/InAppScreens/TravellersScreen/Ranking/index.tsx

@@ -55,6 +55,7 @@ const RankingScreen = () => {
   const ranking: string = storage.get('masterRanking', StoreType.STRING) as string;
   const lpi: string = storage.get('lpiRanking', StoreType.STRING) as string;
   const inHistory: string = storage.get('inHistoryRanking', StoreType.STRING) as string;
+  const inMemoriam: string = storage.get('inMemoriamRanking', StoreType.STRING) as string;
 
   useEffect(() => {
     setMasterRanking(

+ 4 - 2
src/types/api.ts

@@ -21,7 +21,8 @@ export enum API_ENDPOINT {
   GET_LIMITED_RANKING = 'get-app-limited',
   GET_FULL_RANKING = 'get-app-full',
   GET_LPI = 'get-app-lpi',
-  GET_IN_HISTORY = 'get-app-in-history'
+  GET_IN_HISTORY = 'get-app-in-history',
+  GET_IN_MEMORIAM = 'get-app-in-memoriam'
 }
 
 export enum API {
@@ -37,7 +38,8 @@ export enum API {
   GET_LIMITED_RANKING = `${API_ROUTE.RANKING}/${API_ENDPOINT.GET_LIMITED_RANKING}`,
   GET_FULL_RANKING = `${API_ROUTE.RANKING}/${API_ENDPOINT.GET_FULL_RANKING}`,
   GET_LPI = `${API_ROUTE.RANKING}/${API_ENDPOINT.GET_LPI}`,
-  GET_IN_HISTORY = `${API_ROUTE.RANKING}/${API_ENDPOINT.GET_IN_HISTORY}`
+  GET_IN_HISTORY = `${API_ROUTE.RANKING}/${API_ENDPOINT.GET_IN_HISTORY}`,
+  GET_IN_MEMORIAM = `${API_ROUTE.RANKING}/${API_ENDPOINT.GET_IN_MEMORIAM}`
 }
 
 export type BaseAxiosError = AxiosError;