From bc6d9231195a3da58b58dd1267b452ea948775fc Mon Sep 17 00:00:00 2001 From: Ashish Deo Date: Thu, 8 Aug 2024 15:47:23 +0530 Subject: [PATCH] TP-69871 | permissions boolean added --- .../java/com/avapp/DeviceUtilsModule.java | 9 ---- src/common/TrackingComponent.tsx | 1 - src/components/utlis/DeviceUtils.ts | 1 - src/components/utlis/apiHelper.ts | 3 ++ .../screens/homeScreen/action.ts | 20 +++++++ .../screens/homeScreen/index.tsx | 54 ++++++++++++++++--- src/screens/auth/ProtectedRouter.tsx | 2 +- 7 files changed, 72 insertions(+), 18 deletions(-) create mode 100644 src/miniModules/callingAgents/screens/homeScreen/action.ts diff --git a/android/app/src/main/java/com/avapp/DeviceUtilsModule.java b/android/app/src/main/java/com/avapp/DeviceUtilsModule.java index b37285e6..c62d5ac3 100644 --- a/android/app/src/main/java/com/avapp/DeviceUtilsModule.java +++ b/android/app/src/main/java/com/avapp/DeviceUtilsModule.java @@ -344,14 +344,5 @@ public class DeviceUtilsModule extends ReactContextBaseJavaModule { } } - @ReactMethod - public void getBuildFlavour(Promise promise) { - try { - String buildFlavour = BuildConfig.FLAVOR; - promise.resolve(buildFlavour); - } catch (Exception err) { - promise.reject(err); - } - } } diff --git a/src/common/TrackingComponent.tsx b/src/common/TrackingComponent.tsx index 891828d3..ed94ff05 100644 --- a/src/common/TrackingComponent.tsx +++ b/src/common/TrackingComponent.tsx @@ -39,7 +39,6 @@ import { syncCasesByFallback } from '../reducer/allCasesSlice'; import { MILLISECONDS_IN_A_MINUTE, noop } from '../../RN-UI-LIB/src/utlis/common'; import { setCaseSyncLock, setLockData } from '../reducer/userSlice'; import { getConfigData } from '../action/configActions'; -import { GLOBAL } from '../constants/Global'; import { getBuildFlavour } from '../components/utlis/DeviceUtils'; import { AppStates } from '../types/appStates'; import { StorageKeys } from '../types/storageKeys'; diff --git a/src/components/utlis/DeviceUtils.ts b/src/components/utlis/DeviceUtils.ts index dbf9bfb3..9a8e0589 100644 --- a/src/components/utlis/DeviceUtils.ts +++ b/src/components/utlis/DeviceUtils.ts @@ -66,4 +66,3 @@ export const sendContentToWhatsapp = ( ): Promise => DeviceUtilsModule?.sendContentToWhatsapp(message, imageUrl, mimeType, format, fileName); -export const getBuildFlavour = (): Promise => DeviceUtilsModule.getBuildFlavour(); diff --git a/src/components/utlis/apiHelper.ts b/src/components/utlis/apiHelper.ts index c8ca1a3a..3c779933 100644 --- a/src/components/utlis/apiHelper.ts +++ b/src/components/utlis/apiHelper.ts @@ -83,6 +83,7 @@ export enum ApiKeys { FEE_WAIVER_HISTORY = 'FEE_WAIVER_HISTORY', FEE_WAIVER_V2 = 'FEE_WAIVER_V2', GET_PIN_CODES_DETAILS = 'GET_PIN_CODES_DETAILS', + SYNC_COSMOS_TO_LONGHORN = 'SYNC_COSMOS_TO_LONGHORN', } export const API_URLS: Record = {} as Record; @@ -158,6 +159,7 @@ API_URLS[ApiKeys.DUE_AMOUNT_SUMMARY] = '/collection-cases/{loanAccountNumber}/am API_URLS[ApiKeys.FEE_WAIVER_HISTORY] = '/collection-cases/{loanAccountNumber}/waiver-history'; API_URLS[ApiKeys.FEE_WAIVER_V2] = '/loan/request/{loanAccountNumber}/adjust-component/v2'; API_URLS[ApiKeys.GET_PIN_CODES_DETAILS] = '/api/v1/pincodes/{pinCode}'; +API_URLS[ApiKeys.SYNC_COSMOS_TO_LONGHORN] = '/sync/cosmos-sync'; export const API_STATUS_CODE = { OK: 200, @@ -325,6 +327,7 @@ axiosInstance.interceptors.response.use( axiosInstance.defaults.headers.common['Content-Type'] = 'application/json'; axiosInstance.defaults.baseURL = BASE_AV_APP_URL; +axiosInstance.defaults.headers.common['routing_key'] = 'a833bdaf-3504-4639-b202-461e28f6a4b6'; // TODO:: Ideally should happen through middlewares. export const registerNavigateAndDispatch = (dispatchParam: Dispatch) => diff --git a/src/miniModules/callingAgents/screens/homeScreen/action.ts b/src/miniModules/callingAgents/screens/homeScreen/action.ts new file mode 100644 index 00000000..35e26dae --- /dev/null +++ b/src/miniModules/callingAgents/screens/homeScreen/action.ts @@ -0,0 +1,20 @@ +import axiosInstance, { ApiKeys, getApiUrl } from "@components/utlis/apiHelper"; +import { toast } from "@rn-ui-lib/components/toast"; + +export const syncToLonghorn = async ( + allPermissionsGranted: boolean, + agentId: string, + appVersion: string +) => { + const url = getApiUrl(ApiKeys.SYNC_COSMOS_TO_LONGHORN); + const payload = { + allPermissionsGranted, + agentReferenceId: agentId, + appVersion, + }; + try { + await axiosInstance.post(url, payload); + } catch { + toast({ type: 'error', text1: 'Could not sync. Please try again' }); + } +} diff --git a/src/miniModules/callingAgents/screens/homeScreen/index.tsx b/src/miniModules/callingAgents/screens/homeScreen/index.tsx index eb2efbad..f0b1abcc 100644 --- a/src/miniModules/callingAgents/screens/homeScreen/index.tsx +++ b/src/miniModules/callingAgents/screens/homeScreen/index.tsx @@ -1,13 +1,39 @@ -import React from 'react'; -import { View } from 'react-native'; +import React, { useEffect, useState } from 'react'; +import { View, StyleSheet } from 'react-native'; import { GenericStyles } from '../../../../../RN-UI-LIB/src/styles'; import Heading from '../../../../../RN-UI-LIB/src/components/Heading'; import { useAppSelector } from '../../../../hooks'; import NavigationHeader from '../../../../../RN-UI-LIB/src/components/NavigationHeader'; import NaviLogoIcon from '../../../../../RN-UI-LIB/src/Icons/NaviLogoIcon'; +import Button from '@rn-ui-lib/components/Button'; +import RefreshIcon from '@rn-ui-lib/icons/RefreshIcon'; +import { syncToLonghorn } from './action'; +import { getAppVersion } from '@components/utlis/commonFunctions'; +import { COLORS } from '@rn-ui-lib/colors'; +import { getPermissionsToRequest } from '@components/utlis/PermissionUtils'; + const CallingAgentHomeScreen = () => { + + const [isAllPermissionsGranted, setIsAllPermissionsGranted] = useState(false); + + const checkPermissions = async () => { + const permissionsToRequest = await getPermissionsToRequest(); + const allPermissionsGranted = permissionsToRequest.length === 0; + setIsAllPermissionsGranted(allPermissionsGranted); + }; + + useEffect(() => { + checkPermissions(); + }, []); + const user = useAppSelector((state) => state.user.user); + const agentId = useAppSelector((state) => state.user.user?.referenceId) || ''; + const appVersion = getAppVersion(); + const handleOnPress = () => { + syncToLonghorn(isAllPermissionsGranted, agentId, appVersion); + }; + return ( { } /> - - - Welcome, - {user?.name} + + + + Welcome + + {user?.name} + + +