@TP-17904 | Mocking service - added server , geolocation apis and data | Kunal (#80)

* @TP-17904 | Mocking service - added server , geolocation apis and data

* @TP-17904 | Mocking service - added server , geolocation apis and data

* @TP-17904 | Mocking service - added server , geolocation apis and data

* @TP-17904 | Mocking service - added server , geolocation apis and data

* @TP-17904 | Mocking service - added server , geolocation apis and data
This commit is contained in:
Kunal Sharma
2023-02-16 15:47:43 +05:30
committed by GitHub Enterprise
parent 75a64a9187
commit 01782c9f79
18 changed files with 735 additions and 59 deletions

View File

@@ -17,11 +17,14 @@ import useNativeButtons from './src/hooks/useNativeButton';
import { StatusBar } from 'react-native';
import { COLORS } from './RN-UI-LIB/src/styles/colors';
import codePush from 'react-native-code-push';
// import { LogBox } from 'react-native';
// LogBox.ignoreAllLogs();
import { ENV } from './src/constants/config';
import { mockApiServer } from './src/mock-api/server';
Sentry.init({ dsn: SENTRY_DSN });
if (ENV !== 'prod') {
mockApiServer();
}
const App = () => {
useNativeButtons();
return (

View File

@@ -1,3 +1,4 @@
export const BASE_AV_APP_URL = 'https://dev-longhorn-server.np.navi-tech.in/av';
export const SENTRY_DSN = 'https://877396e88a2b4f78b911016c64f9121a@glitchtip.cmd.navi-tech.in/155';
export const JANUS_SERVICE_URL = 'https://dev-longhorn-portal.np.navi-tech.in/api/events/json';
export const JANUS_SERVICE_URL = 'https://dev-longhorn-portal.np.navi-tech.in/api/events/json';
export const ENV = 'dev';

View File

@@ -1,3 +1,4 @@
export const BASE_AV_APP_URL = 'https://qa-longhorn-server.np.navi-tech.in/av';
export const SENTRY_DSN = 'https://877396e88a2b4f78b911016c64f9121a@glitchtip.cmd.navi-tech.in/155';
export const JANUS_SERVICE_URL = 'https://qa-longhorn-portal.np.navi-tech.in/api/events/json';
export const JANUS_SERVICE_URL = 'https://qa-longhorn-portal.np.navi-tech.in/api/events/json';
export const ENV = 'qa';

View File

@@ -76,6 +76,7 @@
"eslint-plugin-react": "7.31.11",
"jest": "26.6.3",
"metro-react-native-babel-preset": "0.72.3",
"miragejs": "0.1.47",
"prettier": "2.8.0",
"react-test-renderer": "18.1.0",
"typescript": "4.8.3"

View File

@@ -21,25 +21,25 @@ import { AppDispatch } from '../store/store';
import { addClickstreamEvent } from '../services/clickstreamEventService';
import { CLICKSTREAM_EVENT_NAMES } from '../common/Constants';
import { logError } from '../components/utlis/errorUtils';
import { AddressesGeolocationPayload } from '../screens/caseDetails/interface';
export const getAllCases =
() => (dispatch: AppDispatch) => {
const url = getApiUrl(ApiKeys.ALL_CASES);
dispatch(setLoading(true));
axiosInstance
.get(url)
.then(response => {
dispatch(setCasesListData({ allCases: response.data }));
dispatch(getAllCaseDetails(response.data));
})
.catch(err => {
console.log(err);
});
};
export const getAllCases = () => (dispatch: AppDispatch) => {
const url = getApiUrl(ApiKeys.ALL_CASES);
dispatch(setLoading(true));
axiosInstance
.get(url)
.then(response => {
dispatch(setCasesListData({ allCases: response.data }));
dispatch(getAllCaseDetails(response.data));
})
.catch(err => {
console.log(err);
});
};
export const getAllCaseDetails =
(data: Array<ICaseItem>) => (dispatch: AppDispatch) => {
if(!data) return;
if (!data) return;
const caseList = data.map(caseItem => caseItem?.caseReferenceId);
const url = getApiUrl(ApiKeys.CASE_DETAIL);
axiosInstance
@@ -81,19 +81,29 @@ export const postPinnedList =
.post(url + `?pins=${payload}`)
.then(response => {
dispatch(getAllCases());
addClickstreamEvent(type === 'REMOVED' ? CLICKSTREAM_EVENT_NAMES.AV_CASE_LIST_REMOVE_API_SUCCESS : CLICKSTREAM_EVENT_NAMES.AV_TODO_LIST_SUBMIT_SUCCESS, {todoList: pinnedCases})
addClickstreamEvent(
type === 'REMOVED'
? CLICKSTREAM_EVENT_NAMES.AV_CASE_LIST_REMOVE_API_SUCCESS
: CLICKSTREAM_EVENT_NAMES.AV_TODO_LIST_SUBMIT_SUCCESS,
{ todoList: pinnedCases },
);
})
.catch(err => {
addClickstreamEvent(type === 'REMOVED' ? CLICKSTREAM_EVENT_NAMES.AV_CASE_LIST_REMOVE_API_FAILED : CLICKSTREAM_EVENT_NAMES.AV_TODO_LIST_SUBMIT_FAILED, {todoList: pinnedCases})
addClickstreamEvent(
type === 'REMOVED'
? CLICKSTREAM_EVENT_NAMES.AV_CASE_LIST_REMOVE_API_FAILED
: CLICKSTREAM_EVENT_NAMES.AV_TODO_LIST_SUBMIT_FAILED,
{ todoList: pinnedCases },
);
dispatch(setTodoListOffline(updatedCaseList));
});
};
export const syncCaseDetail = (data: any) => (dispatch: AppDispatch) => {
const offlineImageIdList = getOfflineImageId(data);
dispatch(updateCaseDetailAfterApiCall({caseId: data.id}))
dispatch(updateCaseDetailAfterApiCall({ caseId: data.id }));
const url = getApiUrl(ApiKeys.FEEDBACK);
const apiTime = (new Date()).getTime();
const apiTime = new Date().getTime();
axiosInstance
.post(url, {
id: data.id,
@@ -104,7 +114,7 @@ export const syncCaseDetail = (data: any) => (dispatch: AppDispatch) => {
OfflineImageDAO.deleteImages(offlineImageIdList);
})
.catch(err => {
dispatch(updateCaseDetailBeforeApiCall({caseId: data.id}))
dispatch(updateCaseDetailBeforeApiCall({ caseId: data.id }));
});
};
@@ -114,14 +124,25 @@ export const syncCaseDetail = (data: any) => (dispatch: AppDispatch) => {
*/
const getOfflineImageId = (caseItem: any) => {
const offlineImageList = [];
for(let taskId in caseItem?.context?.taskContext) {
for(let taskItem of caseItem.context.taskContext?.[taskId]) {
for(let wizItem in taskItem?.widgetContext) {
for(let sectionItem in taskItem.widgetContext[wizItem]?.sectionContext) {
for(let questionItem in taskItem.widgetContext[wizItem].sectionContext[sectionItem]?.questionContext) {
if (taskItem.widgetContext[wizItem].sectionContext[sectionItem].questionContext[questionItem]?.type === AnswerType.image) {
const offlineImageId = taskItem.widgetContext[wizItem].sectionContext[sectionItem].questionContext[questionItem].offlineImageId;
if(offlineImageId) offlineImageList.push(offlineImageId);
for (let taskId in caseItem?.context?.taskContext) {
for (let taskItem of caseItem.context.taskContext?.[taskId]) {
for (let wizItem in taskItem?.widgetContext) {
for (let sectionItem in taskItem.widgetContext[wizItem]
?.sectionContext) {
for (let questionItem in taskItem.widgetContext[wizItem]
.sectionContext[sectionItem]?.questionContext) {
if (
taskItem.widgetContext[wizItem].sectionContext[
sectionItem
].questionContext[questionItem]?.type ===
AnswerType.image
) {
const offlineImageId =
taskItem.widgetContext[wizItem].sectionContext[
sectionItem
].questionContext[questionItem].offlineImageId;
if (offlineImageId)
offlineImageList.push(offlineImageId);
}
}
}
@@ -129,7 +150,7 @@ const getOfflineImageId = (caseItem: any) => {
}
}
return offlineImageList;
}
};
export const getFilters = () => (dispatch: AppDispatch) => {
const url = getApiUrl(ApiKeys.FILTERS);
@@ -142,15 +163,29 @@ export const getFilters = () => (dispatch: AppDispatch) => {
export const getSignedURLs = (urlList: string[]) => (dispatch: AppDispatch) => {
const url = getApiUrl(ApiKeys.IMAGE_SIGNED_URLS);
dispatch(setLoading(true));
return axiosInstance.post(url, urlList).then(response => {
if(response?.data) {
return response.data;
}
throw response;
}).catch((err) => {
logError(err);
})
.finally(() => {
dispatch(setLoading(false));
})
return axiosInstance
.post(url, urlList)
.then(response => {
if (response?.data) {
return response.data;
}
throw response;
})
.catch(err => {
logError(err);
})
.finally(() => {
dispatch(setLoading(false));
});
};
export const getAddressesGeolocation =
(data: AddressesGeolocationPayload) => (dispatch: AppDispatch) => {
const url = getApiUrl(ApiKeys.ADDRESSES_GEOLOCATION);
axiosInstance
.post(url, data)
.then(response => {
console.log('Response is coming', response);
})
.catch(err => console.log(err));
};

View File

@@ -78,7 +78,7 @@ export const CLICKSTREAM_EVENT_NAMES = {
AV_CASE_LIST_TAB_CHANGED : {name: 'AV_CASE_LIST_TAB_CHANGED', description: 'Case list tab changed'},
AV_CASE_LIST_AGENT_PROFILE_CLICKED : {name: 'AV_CASE_LIST_AGENT_PROFILE_CLICKED', description: 'Case list agent profile CTA clicked'},
// TODO LIST
// TODO LIST
AV_TODO_LIST_LOAD : {name: 'AV_TODO_LIST_LOAD', description: 'Todo list confirmation screen loaded'},
AV_TODO_LIST_CASE_DELETED : {name: 'AV_TODO_LIST_CASE_DELETED', description: 'Todo list case deleted'},
AV_TODO_LIST_SUBMIT_CLICKED : {name: 'AV_TODO_LIST_SUBMIT_CLICKED', description: 'Submit CTA clicked'},

View File

@@ -10,7 +10,7 @@ import { logError } from './errorUtils';
import { ClickstreamAPIToMonitor, CLICKSTREAM_EVENT_NAMES } from '../../common/Constants';
import { addClickstreamEvent } from '../../services/clickstreamEventService';
const MOCK_DIR = '__mocks__';
const MOCK_DIR = 'mock';
// set this to `true` to use mock data for local development
// to connect with real apis this should be set to `false`
@@ -26,7 +26,8 @@ export enum ApiKeys {
FEEDBACK,
FILTERS,
JANUS,
IMAGE_SIGNED_URLS
IMAGE_SIGNED_URLS,
ADDRESSES_GEOLOCATION
}
export const API_URLS: Record<ApiKeys, string> = {} as Record<ApiKeys, string>;
@@ -40,8 +41,8 @@ API_URLS[ApiKeys.FEEDBACK] = '/cases/feedback';
API_URLS[ApiKeys.FILTERS] = '/cases/filters';
API_URLS[ApiKeys.JANUS] = '/events/json';
API_URLS[ApiKeys.IMAGE_SIGNED_URLS] = '/cases/get-signed-urls';
API_URLS[ApiKeys.ADDRESSES_GEOLOCATION] = '/addresses-geolocations';
const MOCK_API_URLS: Record<ApiKeys, string> = {} as Record<ApiKeys, string>;
export const API_STATUS_CODE = {
OK: 200,
@@ -70,9 +71,6 @@ export function getApiUrl(
params?: Record<string, string | number>,
queryParams?: Record<string, string | number>,
) {
if (USE_MOCK) {
return `${MOCK_DIR}/${MOCK_API_URLS[apiKey]}`;
}
let apiUrl = API_URLS[apiKey];

View File

@@ -1,3 +1,4 @@
export const BASE_AV_APP_URL = 'https://dev-longhorn-server.np.navi-tech.in/av';
export const BASE_AV_APP_URL = 'https://qa-longhorn-server.np.navi-tech.in/av';
export const SENTRY_DSN = 'https://877396e88a2b4f78b911016c64f9121a@glitchtip.cmd.navi-tech.in/155';
export const JANUS_SERVICE_URL = 'https://dev-longhorn-portal.np.navi-tech.in/api/events/json';
export const JANUS_SERVICE_URL = 'https://qa-longhorn-portal.np.navi-tech.in/api/events/json';
export const ENV = 'qa';

View File

@@ -0,0 +1,4 @@
import {BASE_AV_APP_URL} from "../constants/config";
import {API_URLS, ApiKeys} from "../components/utlis/apiHelper";
export const addressesGeolocationUrl = `${BASE_AV_APP_URL}/${API_URLS[ApiKeys.ADDRESSES_GEOLOCATION]}`

View File

@@ -0,0 +1,210 @@
export const addressesGeolocationData = {
addressL1ViewList: [
{
addressDTO: {
id: '34b2d8cff7001558c533c7ae771ff613',
customerReferenceId: '0d5e4bc7-5365-4d6d-ac73-cad7c0125f61',
externalReferenceId: null,
addressText: 'MUMBAI MAHARASHTRA',
pinCode: '400029',
city: null,
state: 'Maharashtra',
isCurrent: false,
isPermanent: false,
primarySource: 'CIBIL_SCRUB',
secondarySource: 'CIBIL_MASTER_CIBIL_PORTFOLIO',
type: 'RESIDENCE',
consumptionDate: '2022-05-31',
latitude: null,
longitude: null,
verified: null,
visited: null,
groupIdentifier: '1',
createdAt: '2023-01-30T09:06:45.365+00:00',
updatedAt: '2023-01-30T09:06:45.365+00:00',
},
similarAddresses: [],
matchingGeoLocations: [],
},
{
addressDTO: {
id: 'ff3a75377fc24e04bb03b2f571e41c37',
customerReferenceId: '0d5e4bc7-5365-4d6d-ac73-cad7c0125f61',
externalReferenceId: null,
addressText: 'Some random address\nIts in some place',
pinCode: null,
city: 'Not Bangalore',
state: null,
isCurrent: null,
isPermanent: null,
primarySource: 'LONGHORN',
secondarySource: 'COLLECTION_SERVICE',
type: null,
consumptionDate: null,
latitude: 13.742393,
longitude: 76.9013919,
verified: null,
visited: true,
groupIdentifier: null,
createdAt: '2023-01-27T14:56:13.765+00:00',
updatedAt: '2023-02-14T10:04:54.380+00:00',
},
similarAddresses: [
{
addressDTO: {
id: 'ff69e7ae4642451a9a944abd55c02d8b',
customerReferenceId:
'0d5e4bc7-5365-4d6d-ac73-cad7c0125f61',
externalReferenceId: null,
addressText: 'qwerty\nqwerty street, qwerty nagar',
pinCode: null,
city: 'qwerty',
state: null,
isCurrent: null,
isPermanent: null,
primarySource: 'LONGHORN',
secondarySource: 'COLLECTION_SERVICE',
type: null,
consumptionDate: null,
latitude: 12.9344698,
longitude: 77.6179804,
verified: null,
visited: true,
groupIdentifier: null,
createdAt: '2023-01-18T09:09:05.775+00:00',
updatedAt: '2023-01-27T14:29:40.832+00:00',
},
},
{
addressDTO: {
id: 'dc0feed3cc784a01873ff500a7b3f968',
customerReferenceId:
'0d5e4bc7-5365-4d6d-ac73-cad7c0125f61',
externalReferenceId: null,
addressText: 'qwerty\nqwerty street, qwerty nagar',
pinCode: null,
city: 'qwerty',
state: null,
isCurrent: null,
isPermanent: null,
primarySource: 'LONGHORN',
secondarySource: 'COLLECTION_SERVICE',
type: null,
consumptionDate: null,
latitude: 12.9344698,
longitude: 77.6179804,
verified: null,
visited: true,
groupIdentifier: null,
createdAt: '2023-01-18T09:09:05.770+00:00',
updatedAt: '2023-01-27T14:29:40.750+00:00',
},
},
{
addressDTO: {
id: 'c2c2e91c39594b32937b3e54af2263d4',
customerReferenceId:
'0d5e4bc7-5365-4d6d-ac73-cad7c0125f61',
externalReferenceId: null,
addressText: 'qwerty\nqwerty street, qwerty nagar',
pinCode: null,
city: 'qwerty',
state: null,
isCurrent: null,
isPermanent: null,
primarySource: 'LONGHORN',
secondarySource: 'COLLECTION_SERVICE',
type: null,
consumptionDate: null,
latitude: null,
longitude: null,
verified: null,
visited: true,
groupIdentifier: null,
createdAt: '2023-01-18T09:08:30.957+00:00',
updatedAt: '2023-01-27T14:29:40.720+00:00',
},
},
{
addressDTO: {
id: 'f7d31ebd1decbf05be8d955b93fb306d',
customerReferenceId:
'0d5e4bc7-5365-4d6d-ac73-cad7c0125f61',
externalReferenceId:
'8d4eca6c-53b2-491c-80c0-c5204b63afda',
addressText: null,
pinCode: '400098',
city: null,
state: null,
isCurrent: false,
isPermanent: false,
primarySource: 'MMI',
secondarySource: 'CUSTOMER_SERVICE',
type: 'MMI',
consumptionDate: null,
latitude: null,
longitude: null,
verified: null,
visited: null,
groupIdentifier: null,
createdAt: '2023-01-30T09:07:25.060+00:00',
updatedAt: '2023-01-30T09:07:25.060+00:00',
},
},
{
addressDTO: {
id: 'ca5309f3055a08b98ce9747dce0b9a51',
customerReferenceId:
'0d5e4bc7-5365-4d6d-ac73-cad7c0125f61',
externalReferenceId:
'1f7db9e2-c590-489f-a587-0b9e0450bca5',
addressText: null,
pinCode: '400098',
city: null,
state: null,
isCurrent: false,
isPermanent: false,
primarySource: 'MMI',
secondarySource: 'CUSTOMER_SERVICE',
type: 'MMI',
consumptionDate: null,
latitude: null,
longitude: null,
verified: null,
visited: null,
groupIdentifier: null,
createdAt: '2023-01-30T09:07:54.235+00:00',
updatedAt: '2023-01-30T09:07:54.235+00:00',
},
},
{
addressDTO: {
id: '03501abc590d4e88afa5e2ea625a9a78',
customerReferenceId:
'0d5e4bc7-5365-4d6d-ac73-cad7c0125f61',
externalReferenceId: null,
addressText: 'asd\nasd',
pinCode: null,
city: '12',
state: null,
isCurrent: null,
isPermanent: null,
primarySource: 'LONGHORN',
secondarySource: 'COLLECTION_SERVICE',
type: null,
consumptionDate: null,
latitude: 13.7423956,
longitude: 76.9013917,
verified: null,
visited: null,
groupIdentifier: null,
createdAt: '2023-01-27T13:39:01.720+00:00',
updatedAt: '2023-01-27T13:39:01.720+00:00',
},
},
],
matchingGeoLocations: [],
},
],
unmatchedGeoLocations: [],
};

View File

@@ -0,0 +1,210 @@
export const caseDetailMockData = [
{
id: '450233d6-58c8-45c0-b814-175e18386f41',
caseStatus: 'ASSIGNED',
createdAt: 1674016478376,
updatedAt: 1674016503049,
allocatedAt: 1674016503039,
loanDetails: {
loanAccountNumber: '010000077710',
disbursalDate: 1669334400000,
disbursementAmount: 50000,
firstDueDate: 1671321600000,
tenureMonths: 20,
loanType: 'PERSONAL_LOAN',
loanAccountStatus: 'ACTIVE',
productCode: 'PL-0001',
},
customerInfo: {
customerReferenceId: '50d9577e-bbc4-4c23-8bbb-7dda5f71d97b',
customerName: 'Jeel Gajera',
primaryPhoneNumber: '9901353325',
imageURL:
'https://s3.ap-south-1.amazonaws.com/navi-d5a6c37adb7e06d06401aba47fe07bf3/prod/55556b6b-9a19-4d2b-ac71-519599c35cef?X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHsaCXVzLWVhc3QtMSJIMEYCIQD9nl79blCjgLKlGt7aw2UIYw3wGKNfh%2Bwxuuz3Qy4OfwIhAKzG8jdQ8kAmmtPlsw8acMVENHPyxLbmacRoTy9ijgy9KrICCBMQARoMNTcxMzE1MDc2NzYyIgyayYE5cOrRZyLcCBMqjwKeO3foMwJskwZJU7xg%2B%2BZe8lgplHXXwrfKl9NJ2ARaiePUM5ehpScToi7jIm7pbHeJaSiaKAhrqbIl%2Fw8BtFBJ7MPJ5oiaU6ACm7eWEnHPseIFA022LA8y41C56S7T%2F6fhkVkY9dfiOAewtbRK0KwuHlBPeuNJu3uKJNu1QyY%2BA0cXtrxlKyuE5e2KVO06L7zUsKOXGvEnLkLbdTWIIj4DWBwiCZqgbsmfcxJPwdlRgBrC2Y%2F8v6DQLucAapU1cNfYFvGW%2BLZDJuNOs4j7gKfCSAOLeFCX2dFDgaz7fx6F1FnGJG%2B79pz%2BtvdOXEy%2F8btoRNgLgIdd%2BOOyikDa5k6z%2B8rWT0oqprRUKEuRomvBMJvArZ8GOpwBPDn%2FGw1gCSG9ECbrcAbtDLQ36pL8WOVBKJlEELQMNtGf6ZocrjzaHZISF6mltJjIp5EfUKEXf0Nl6TkrTYkqYecqWLkKPl3mqgeskxRKc4yGfdVcq7IQNdyOFuYkZTyg24hgVzbiprZtLUWnNunlIHShqrNvoCmoBB81V2PJ9sc%2FdsrUW5%2BR3h0YjJEbEoSzu9aHRBBp6Q0N0AHE&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230214T103300Z&X-Amz-SignedHeaders=host&X-Amz-Expires=43199&X-Amz-Credential=ASIAYKBIIH2NNHF73EDM%2F20230214%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Signature=d4350d588f96ebf72d7a4d02df32bb55d098c368732a075e81ab55069f2ef80c',
geoLocation: 'https://maps.google.com/?q=21.2188024,72.8937695',
},
tasks: [
{
taskId: 221,
taskType: 'COMMUNICATION_ADDRESS_VERIFICATION_TASK',
metadata: {
type: 'address',
address: {
referenceId: null,
houseNumber: '156 GOKUL NAGAR SOCIETY',
lineOne: null,
lineTwo: null,
locality: 'ROAD VARACHHA SURAT CITY',
street: 'NEAR RACHNA SOCIETY L H',
city: 'Surat',
state: 'GJ',
pinCode: '576109',
type: null,
source: 'CUSTOMER',
current: true,
permanent: false,
zipCode: null,
addressQualityStatus: null,
},
addressLine:
'156 GOKUL NAGAR SOCIETY,ROAD VARACHHA SURAT CITY,NEAR RACHNA SOCIETY L H,Surat,GJ,576109',
},
},
{
taskId: 222,
taskType: 'PERMANENT_ADDRESS_VERIFICATION_TASK',
metadata: {
type: 'address',
address: {
referenceId: null,
houseNumber: '156 GOKUL NAGAR SOCIETY',
lineOne: null,
lineTwo: null,
locality: 'NEAR RACHNA SOCIETY L H',
street: 'ROAD VARACHHA SURAT CITY',
city: 'Surat',
state: 'GJ',
pinCode: '576107',
type: null,
source: 'CKYC',
current: false,
permanent: true,
zipCode: null,
addressQualityStatus: null,
},
addressLine:
'156 GOKUL NAGAR SOCIETY,NEAR RACHNA SOCIETY L H,ROAD VARACHHA SURAT CITY,Surat,GJ,576107',
},
},
{
taskId: 223,
taskType: 'GEO_LOCATION_VERIFICATION_TASK',
metadata: {
type: 'geo',
geoLocation:
'https://maps.google.com/?q=21.2188024,72.8937695',
},
},
{
taskId: 224,
taskType: 'CALLING_TASK',
metadata: { type: 'calling', primaryPhoneNumber: '9901353325' },
},
{
taskId: 225,
taskType: 'NEW_ADDRESS_VERIFICATION_TASK',
metadata: null,
},
],
context: null,
currentAllocationReferenceId: '67b34cb2-ccc4-4aae-bc39-778cbdd563d2',
currentAgentId: '598e3ab3-5870-43c5-a9d5-d3f18388c1a7',
taskSequence: [
'COMMUNICATION_ADDRESS_VERIFICATION_TASK',
'PERMANENT_ADDRESS_VERIFICATION_TASK',
'GEO_LOCATION_VERIFICATION_TASK',
'CALLING_TASK',
'NEW_ADDRESS_VERIFICATION_TASK',
],
currentTask: 'COMMUNICATION_ADDRESS_VERIFICATION_TASK',
},
{
id: '450233d6-58c8-45c0-b814-175e18386f45',
updatedAt: 1674474231951,
allocatedAt: 1674016504968,
caseStatus: 'ACTIVE',
caseReferenceId: '45f2e0e8-fb2f-4d4f-aa95-4030afd28da9',
customerName: 'Manoj Kumar',
dpdBucket: '30-60',
caseType: 'COLLECTION_CASE',
pos: 70173.57,
addressString:
'BARRACKPORE(M) BARRACKPORE, NORTH, C M SAHA ROAD, MONIRAMPORE, NORTH, Barrackpore, WEST BENGAL, 700120',
addresses: [
{
referenceId: 'cdfa0a17-790c-41bf-a745-7c44a2fbc9ac',
addressReferenceId: 'fcbc99bb-9f7e-4a36-9183-723359c5a5fc',
lineOne: 'BARRACKPORE(M) BARRACKPORE, NORTH',
lineTwo: 'C M SAHA ROAD, MONIRAMPORE, NORTH',
city: 'Barrackpore',
state: 'WEST BENGAL',
pinCode: '700120',
current: false,
permanent: false,
type: 'CORRESPONDENCE',
source: 'PRIMARY',
addressQualityStatus: null,
collectionCaseId: 711260,
signals: null,
location: null,
},
],
customerReferenceId: 'dadada60-cedb-44f9-90e3-54920c215ffc',
documents: [
{
referenceId: '13e59219-6ae5-4b76-9546-88c194a90aaf',
uri: 'https://s3.ap-south-1.amazonaws.com/navi-8af22e75d3ad3bd252215069b16a75dc/prod/45fcb4e6-8a28-44cf-83d2-f1f4ecec08de?X-Amz-Security-Token=FwoGZXIvYXdzEHIaDPgmIUpLhzA7q0TTFiLLARhdLI4snCE8w6Ym91%2BA%2FWui%2FAe056BY18TJQSjlvxsxv2rqs5Iv3Vbi6ZejDxFujAKhYemnPUvJiMfnClh6DPyrUL9Bbktx16n5I1b5sgB3JFVHD2V%2FAiSdIGcQm3JWbHw%2FUziDZQwHOn0Ky1HpZpKUtNHvFX1%2BXs8teXm7hw%2BWfuSolb89BwO766VCAiKYntUiRbDHJnuoCOOCFdjEchh6rOfNj2lLDWWIoRG%2FA0kSQoxpg44%2FG4kh2kb9oc8D6axMsRhHpq%2BET8v9KI3yp58GMi3oPCBEpb%2BU7PCclh2eYGw2tROj9bjwHQ%2Bd8TYshKGt61VdkjEamtVkuzbwpq4%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230213T090839Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=ASIAXFRMTTJPXEBQOWXV%2F20230213%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Signature=32acb064356397c47ba39ae3c102f7145ba5610a939009ebaf3976ea707742a3',
type: 'SELFIE',
},
{
referenceId: '0d1e8180-9618-4235-aab5-1a163ccd13cd',
uri: 'https://s3.ap-south-1.amazonaws.com/navi-8af22e75d3ad3bd252215069b16a75dc/prod/30dc3faa-049f-426b-9325-0d386a2131c9?X-Amz-Security-Token=FwoGZXIvYXdzEHIaDPgmIUpLhzA7q0TTFiLLARhdLI4snCE8w6Ym91%2BA%2FWui%2FAe056BY18TJQSjlvxsxv2rqs5Iv3Vbi6ZejDxFujAKhYemnPUvJiMfnClh6DPyrUL9Bbktx16n5I1b5sgB3JFVHD2V%2FAiSdIGcQm3JWbHw%2FUziDZQwHOn0Ky1HpZpKUtNHvFX1%2BXs8teXm7hw%2BWfuSolb89BwO766VCAiKYntUiRbDHJnuoCOOCFdjEchh6rOfNj2lLDWWIoRG%2FA0kSQoxpg44%2FG4kh2kb9oc8D6axMsRhHpq%2BET8v9KI3yp58GMi3oPCBEpb%2BU7PCclh2eYGw2tROj9bjwHQ%2Bd8TYshKGt61VdkjEamtVkuzbwpq4%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230213T090839Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=ASIAXFRMTTJPXEBQOWXV%2F20230213%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Signature=06acb56621f25e525078684d5c7c2033148ea1758443e54cadf995ad1794a41f',
type: 'aadhar_photo',
},
],
imageUrl:
'https://s3.ap-south-1.amazonaws.com/navi-8af22e75d3ad3bd252215069b16a75dc/prod/45fcb4e6-8a28-44cf-83d2-f1f4ecec08de?X-Amz-Security-Token=FwoGZXIvYXdzEHIaDPgmIUpLhzA7q0TTFiLLARhdLI4snCE8w6Ym91%2BA%2FWui%2FAe056BY18TJQSjlvxsxv2rqs5Iv3Vbi6ZejDxFujAKhYemnPUvJiMfnClh6DPyrUL9Bbktx16n5I1b5sgB3JFVHD2V%2FAiSdIGcQm3JWbHw%2FUziDZQwHOn0Ky1HpZpKUtNHvFX1%2BXs8teXm7hw%2BWfuSolb89BwO766VCAiKYntUiRbDHJnuoCOOCFdjEchh6rOfNj2lLDWWIoRG%2FA0kSQoxpg44%2FG4kh2kb9oc8D6axMsRhHpq%2BET8v9KI3yp58GMi3oPCBEpb%2BU7PCclh2eYGw2tROj9bjwHQ%2Bd8TYshKGt61VdkjEamtVkuzbwpq4%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230213T090839Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=ASIAXFRMTTJPXEBQOWXV%2F20230213%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Signature=32acb064356397c47ba39ae3c102f7145ba5610a939009ebaf3976ea707742a3',
phoneNumbers: [
{
type: 'OFFICE_PHONE',
source: 'BUREAU',
sourceText: 'Credit Bureau Scrub',
number: '9125591080',
valid: true,
telephoneScore: -1,
havingMaximumScore: false,
callHistory: null,
createdAt: '2022-02-26T13:48:00.819969',
new: true,
},
{
type: 'OFFICE_PHONE',
source: 'BUREAU',
sourceText: 'Credit Bureau Scrub',
number: '8792044101',
valid: true,
telephoneScore: -1,
havingMaximumScore: false,
callHistory: null,
createdAt: '2022-02-26T13:48:00.819969',
new: true,
},
{
type: '',
source: 'PRIMARY',
sourceText: 'Primary Contact',
number: '9620174791',
valid: true,
telephoneScore: 100,
havingMaximumScore: true,
callHistory: null,
createdAt: null,
new: true,
},
{
type: 'MOBILE_PHONE',
source: 'BUREAU',
sourceText: 'Credit Bureau Scrub',
number: '9855855888',
valid: true,
telephoneScore: -1,
havingMaximumScore: false,
callHistory: null,
createdAt: '2022-02-26T13:48:00.819969',
new: true,
},
],
currentOutstandingEmi: 7017.57,
totalOverdueEmis: 12,
},
];

24
src/mock-api/server.ts Normal file
View File

@@ -0,0 +1,24 @@
import {createServer} from 'miragejs';
import {addressesGeolocationUrl} from "./constants";
import {addressesGeolocationData} from "./data/addressesGeolocation";
import {API_URLS, ApiKeys} from "../components/utlis/apiHelper";
export function mockApiServer() {
if (window.server) {
window.server.shutdown();
}
window.server = createServer({
routes() {
this.post(addressesGeolocationUrl , () => {
return {...addressesGeolocationData};
})
this.passthrough((r) => {
return !r.url.includes(API_URLS[ApiKeys.ADDRESSES_GEOLOCATION])
});
this.passthrough((r) => {
return !r.url.includes(API_URLS[ApiKeys.CASE_DETAIL])
});
}
})
}

View File

@@ -16,7 +16,10 @@ import {
SCREEN_WIDTH,
} from '../../../RN-UI-LIB/src/styles';
import { COLORS } from '../../../RN-UI-LIB/src/styles/colors';
import { getSingleCaseDetail } from '../../action/dataActions';
import {
getAddressesGeolocation,
getSingleCaseDetail,
} from '../../action/dataActions';
import { useAppDispatch, useAppSelector } from '../../hooks';
import useRefresh from '../../hooks/useRefresh';
import { updateAlternateHeader } from '../../reducer/caseReducer';
@@ -58,6 +61,7 @@ const CaseDetails: React.FC<ICaseDetails> = props => {
currentTask: caseDetail?.currentTask?.taskType,
},
);
dispatch(getAddressesGeolocation({ latitude: 1, longitude: 1 }));
}, []);
const handleRefresh = () => {

View File

@@ -154,3 +154,5 @@ export interface CaseDetail {
dpdBucket: string;
currentAllocationReferenceId: string;
}
export interface AddressesGeolocationPayload {latitude: number, longitude: number}

View File

@@ -3,11 +3,11 @@
"extends": "@tsconfig/react-native/tsconfig.json", /* Recommended React Native TSConfig base */
"compilerOptions": {
/* Visit https://aka.ms/tsconfig.json to read more about this file */
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": ["dom","es5","es2019"],
/* Completeness */
"skipLibCheck": true, /* Skip type checking all .d.ts files. */
}
"skipLibCheck": true /* Skip type checking all .d.ts files. */
},
}

7
types.d.ts vendored Normal file
View File

@@ -0,0 +1,7 @@
export {};
declare global {
interface Window {
server: any;
}
}

175
yarn.lock
View File

@@ -1264,6 +1264,11 @@
"@jridgewell/resolve-uri" "3.1.0"
"@jridgewell/sourcemap-codec" "1.4.14"
"@miragejs/pretender-node-polyfill@^0.1.0":
version "0.1.2"
resolved "https://registry.yarnpkg.com/@miragejs/pretender-node-polyfill/-/pretender-node-polyfill-0.1.2.tgz#d26b6b7483fb70cd62189d05c95d2f67153e43f2"
integrity sha512-M/BexG/p05C5lFfMunxo/QcgIJnMT2vDVCd00wNqK2ImZONIlEETZwWJu1QtLxtmYlSHlCFl3JNzp0tLe7OJ5g==
"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1":
version "5.1.1-v1"
resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129"
@@ -3949,6 +3954,11 @@ extglob@^2.0.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
fake-xml-http-request@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/fake-xml-http-request/-/fake-xml-http-request-2.1.2.tgz#f1786720cae50bbb46273035a0173414f3e85e74"
integrity sha512-HaFMBi7r+oEC9iJNpc3bvcW7Z7iLmM26hPDmlb0mFwyANSsOQAtJxbdWsXITKOzZUyMYK0zYCv3h5yDj9TsiXg==
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
@@ -4645,6 +4655,11 @@ imurmurhash@^0.1.4:
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
inflected@^2.0.4:
version "2.1.0"
resolved "https://registry.yarnpkg.com/inflected/-/inflected-2.1.0.tgz#2816ac17a570bbbc8303ca05bca8bf9b3f959687"
integrity sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@@ -5735,21 +5750,136 @@ locate-path@^6.0.0:
dependencies:
p-locate "^5.0.0"
lodash.assign@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
integrity sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==
lodash.camelcase@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
lodash.clonedeep@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==
lodash.compact@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash.compact/-/lodash.compact-3.0.1.tgz#540ce3837745975807471e16b4a2ba21e7256ca5"
integrity sha512-2ozeiPi+5eBXW1CLtzjk8XQFhQOEMwwfxblqeq6EGyTxZJ1bPATqilY0e6g2SLQpP4KuMeuioBhEnWz5Pr7ICQ==
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
lodash.find@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1"
integrity sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==
lodash.flatten@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==
lodash.forin@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.forin/-/lodash.forin-4.4.0.tgz#5d3f20ae564011fbe88381f7d98949c9c9519731"
integrity sha512-APldePP4yvGhMcplVxv9L+exdLHMRHRhH1Q9O70zRJMm9HbTm6zxaihXtNl+ICOBApeFWoH7jNmFr/L4XfWeiQ==
lodash.get@^4.4.2:
version "4.4.2"
resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==
lodash.has@^4.5.2:
version "4.5.2"
resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862"
integrity sha512-rnYUdIo6xRCJnQmbVFEwcxF144erlD+M3YcJUVesflU9paQaE8p+fJDcIQrlMYbxoANFL+AB9hZrzSBBk5PL+g==
lodash.invokemap@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.invokemap/-/lodash.invokemap-4.6.0.tgz#1748cda5d8b0ef8369c4eb3ec54c21feba1f2d62"
integrity sha512-CfkycNtMqgUlfjfdh2BhKO/ZXrP8ePOX5lEU/g0R3ItJcnuxWDwokMGKx1hWcfOikmyOVx6X9IwWnDGlgKl61w==
lodash.isempty@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e"
integrity sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg==
lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==
lodash.isfunction@^3.0.9:
version "3.0.9"
resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051"
integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==
lodash.isinteger@^4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==
lodash.isplainobject@^4.0.6:
version "4.0.6"
resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==
lodash.lowerfirst@^4.3.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz#de3c7b12e02c6524a0059c2f6cb7c5c52655a13d"
integrity sha512-UUKX7VhP1/JL54NXg2aq/E1Sfnjjes8fNYTNkPU8ZmsaVeBvPHKdbNaN79Re5XRL01u6wbq3j0cbYZj71Fcu5w==
lodash.map@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3"
integrity sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==
lodash.mapvalues@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c"
integrity sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==
lodash.merge@^4.6.2:
version "4.6.2"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
lodash.pick@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==
lodash.snakecase@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d"
integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==
lodash.throttle@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==
lodash.uniqby@^4.7.0:
version "4.7.0"
resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302"
integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==
lodash.values@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347"
integrity sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==
lodash@^4.17.19, lodash@^4.17.21, lodash@^4.7.0:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
@@ -6213,6 +6343,38 @@ minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
miragejs@^0.1.47:
version "0.1.47"
resolved "https://registry.yarnpkg.com/miragejs/-/miragejs-0.1.47.tgz#c4a8dff21adfc0ce3181d78987f11848d74c6869"
integrity sha512-99tuCbIAlMhNhyF3s5d3+5/FdJ7O4jSq/5e3e+sDv7L8dZdwJuwutXe0pobJ7hm6yRChTDjK+Nn8dZZd175wbg==
dependencies:
"@miragejs/pretender-node-polyfill" "^0.1.0"
inflected "^2.0.4"
lodash.assign "^4.2.0"
lodash.camelcase "^4.3.0"
lodash.clonedeep "^4.5.0"
lodash.compact "^3.0.1"
lodash.find "^4.6.0"
lodash.flatten "^4.4.0"
lodash.forin "^4.4.0"
lodash.get "^4.4.2"
lodash.has "^4.5.2"
lodash.invokemap "^4.6.0"
lodash.isempty "^4.4.0"
lodash.isequal "^4.5.0"
lodash.isfunction "^3.0.9"
lodash.isinteger "^4.0.4"
lodash.isplainobject "^4.0.6"
lodash.lowerfirst "^4.3.1"
lodash.map "^4.6.0"
lodash.mapvalues "^4.6.0"
lodash.pick "^4.4.0"
lodash.snakecase "^4.1.1"
lodash.uniq "^4.5.0"
lodash.uniqby "^4.7.0"
lodash.values "^4.3.0"
pretender "^3.4.7"
mixin-deep@^1.2.0:
version "1.3.2"
resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
@@ -6839,6 +7001,14 @@ prelude-ls@~1.1.2:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==
pretender@^3.4.7:
version "3.4.7"
resolved "https://registry.yarnpkg.com/pretender/-/pretender-3.4.7.tgz#34a2ae2d1fc9db440a990d50e6c0f5481d8755fc"
integrity sha512-jkPAvt1BfRi0RKamweJdEcnjkeu7Es8yix3bJ+KgBC5VpG/Ln4JE3hYN6vJym4qprm8Xo5adhWpm3HCoft1dOw==
dependencies:
fake-xml-http-request "^2.1.2"
route-recognizer "^0.3.3"
prettier-linter-helpers@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
@@ -7462,6 +7632,11 @@ rn-fetch-blob@0.12.0:
base-64 "0.1.0"
glob "7.0.6"
route-recognizer@^0.3.3:
version "0.3.4"
resolved "https://registry.yarnpkg.com/route-recognizer/-/route-recognizer-0.3.4.tgz#39ab1ffbce1c59e6d2bdca416f0932611e4f3ca3"
integrity sha512-2+MhsfPhvauN1O8KaXpXAOfR/fwe8dnUXVM+xw7yt40lJRfPVQxV6yryZm0cgRvAj5fMF/mdRZbL2ptwbs5i2g==
rsvp@^4.8.4:
version "4.8.5"
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"