tango-app-api-audit 3.5.21 → 3.5.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getOpenSearchData, getOpenSearchById, logger, insertOpenSearchData, updateOpenSearchData, download, chunkArray, getOpenSearchCount } from 'tango-app-api-middleware';
|
|
1
|
+
import { getOpenSearchData, getOpenSearchById, logger, insertOpenSearchData, updateOpenSearchData, download, chunkArray, getOpenSearchCount, insertWithId } from 'tango-app-api-middleware';
|
|
2
2
|
import { findOneUser } from '../service/user.service.js';
|
|
3
3
|
import mongoose from 'mongoose';
|
|
4
4
|
import dayjs from 'dayjs';
|
|
@@ -758,6 +758,86 @@ export async function save( req, res ) {
|
|
|
758
758
|
};
|
|
759
759
|
await updateOpenSearchData( openSearch.EyeTestOutput, output?._id, { doc: record } );
|
|
760
760
|
await updateOpenSearchData( openSearch.EyeTestInput, inputData.id, { doc: inputrecord } );
|
|
761
|
+
|
|
762
|
+
const getOne = await getOpenSearchData( openSearch.EyeTestInput, inputData.id );
|
|
763
|
+
const inputUpdatedData = getOne?.body?.hits?.hits;
|
|
764
|
+
const getEyetestConfig = await findOneEyeTestConfig( { clientId: req?.user.userType == 'tango'? inputData?.clientId : req.user.clientId, configureType: 'email' }, { condition: '$complianceThreshold.condition', value: '$complianceThreshold.value' } );
|
|
765
|
+
if ( getEyetestConfig && inputData.auditStatus == 'Audited' && inputUpdatedData?.lenght > 0 ) {
|
|
766
|
+
const trustScore = Math.round( 100-( ( inputData?.overRides / inputData?.steps?.length ) * 100 ) );
|
|
767
|
+
const value = Number( getEyetestConfig?.value?.split( '%' )[0] );
|
|
768
|
+
const condition = getEyetestConfig.condition;
|
|
769
|
+
const id= `${inputData?.RMEmail}_${inputData?.cluster}_${inputUpdatedData?.[0]?._source?.optumId}_${inputData?.fileId}`;
|
|
770
|
+
switch ( condition ) {
|
|
771
|
+
case '>': if ( trustScore > value ) {
|
|
772
|
+
const record1 = {
|
|
773
|
+
RMEmail: inputData.RMEmail,
|
|
774
|
+
cluster: inputData.cluster,
|
|
775
|
+
optumId: inputUpdatedData?.[0]?._source?.optumId,
|
|
776
|
+
storeName: inputUpdatedData?.[0]?._source?.storeName,
|
|
777
|
+
complianceScore: inputUpdatedData?.[0]?._source?.complianceScore,
|
|
778
|
+
trustScore: inputUpdatedData?.[0]?._source?.trustScore,
|
|
779
|
+
};
|
|
780
|
+
await insertWithId( openSearch.eyeTestEmailAlert, id, record1 );
|
|
781
|
+
}
|
|
782
|
+
case '<': if ( trustScore < value ) {
|
|
783
|
+
const record2 = {
|
|
784
|
+
RMEmail: inputData.RMEmail,
|
|
785
|
+
cluster: inputData.cluster,
|
|
786
|
+
optumId: inputUpdatedData?.[0]?._source?.optumId,
|
|
787
|
+
storeName: inputUpdatedData?.[0]?._source?.storeName,
|
|
788
|
+
complianceScore: inputUpdatedData?.[0]?._source?.complianceScore,
|
|
789
|
+
trustScore: inputUpdatedData?.[0]?._source?.trustScore,
|
|
790
|
+
};
|
|
791
|
+
await insertWithId( openSearch.eyeTestEmailAlert, id, record2 );
|
|
792
|
+
};
|
|
793
|
+
case '>=': if ( trustScore >= value ) {
|
|
794
|
+
const record3 = {
|
|
795
|
+
RMEmail: inputData.RMEmail,
|
|
796
|
+
cluster: inputData.cluster,
|
|
797
|
+
optumId: inputUpdatedData?.[0]?._source?.optumId,
|
|
798
|
+
storeName: inputUpdatedData?.[0]?._source?.storeName,
|
|
799
|
+
complianceScore: inputUpdatedData?.[0]?._source?.complianceScore,
|
|
800
|
+
trustScore: inputUpdatedData?.[0]?._source?.trustScore,
|
|
801
|
+
};
|
|
802
|
+
await insertWithId( openSearch.eyeTestEmailAlert, id, record3 );
|
|
803
|
+
}
|
|
804
|
+
case '<=': if ( trustScore <= value ) {
|
|
805
|
+
const record4 = {
|
|
806
|
+
RMEmail: inputData.RMEmail,
|
|
807
|
+
cluster: inputData.cluster,
|
|
808
|
+
optumId: inputUpdatedData?.[0]?._source?.optumId,
|
|
809
|
+
storeName: inputUpdatedData?.[0]?._source?.storeName,
|
|
810
|
+
complianceScore: inputUpdatedData?.[0]?._source?.complianceScore,
|
|
811
|
+
trustScore: inputUpdatedData?.[0]?._source?.trustScore,
|
|
812
|
+
};
|
|
813
|
+
await insertWithId( openSearch.eyeTestEmailAlert, id, record4 );
|
|
814
|
+
}
|
|
815
|
+
case '=':
|
|
816
|
+
case '==': if ( trustScore == value ) {
|
|
817
|
+
const record5 = {
|
|
818
|
+
RMEmail: inputData.RMEmail,
|
|
819
|
+
cluster: inputData.cluster,
|
|
820
|
+
optumId: inputUpdatedData?.[0]?._source?.optumId,
|
|
821
|
+
storeName: inputUpdatedData?.[0]?._source?.storeName,
|
|
822
|
+
complianceScore: inputUpdatedData?.[0]?._source?.complianceScore,
|
|
823
|
+
trustScore: inputUpdatedData?.[0]?._source?.trustScore,
|
|
824
|
+
};
|
|
825
|
+
await insertWithId( openSearch.eyeTestEmailAlert, id, record5 );
|
|
826
|
+
}
|
|
827
|
+
case '===': if ( trustScore === value ) {
|
|
828
|
+
const record6 = {
|
|
829
|
+
RMEmail: inputData.RMEmail,
|
|
830
|
+
cluster: inputData.cluster,
|
|
831
|
+
optumId: inputUpdatedData?.[0]?._source?.optumId,
|
|
832
|
+
storeName: inputUpdatedData?.[0]?._source?.storeName,
|
|
833
|
+
complianceScore: inputUpdatedData?.[0]?._source?.complianceScore,
|
|
834
|
+
trustScore: inputUpdatedData?.[0]?._source?.trustScore,
|
|
835
|
+
};
|
|
836
|
+
await insertWithId( openSearch.eyeTestEmailAlert, id, record6 );
|
|
837
|
+
}
|
|
838
|
+
default: throw new Error( `Unknown condition: ${condition}` );
|
|
839
|
+
}
|
|
840
|
+
}
|
|
761
841
|
return res.sendSuccess( 'The file has been submited successfully' );
|
|
762
842
|
} catch ( error ) {
|
|
763
843
|
const err = error.message || 'Internal Server Error';
|
|
@@ -1573,16 +1653,25 @@ export async function emailAlertLog( req, res ) {
|
|
|
1573
1653
|
if ( getData && getData?.body?.hits?.hits?.length > 0 ) {
|
|
1574
1654
|
return res.sendError( 'No records found', 204 );
|
|
1575
1655
|
}
|
|
1656
|
+
let response =[];
|
|
1657
|
+
for ( let item of getData?.body?.hits?.hits ) {
|
|
1658
|
+
response.push( {
|
|
1659
|
+
RMEmail: item?._source?.RMEmail,
|
|
1660
|
+
cluster: item?._source?.cluster,
|
|
1661
|
+
optumId: item?._source?.optumId,
|
|
1662
|
+
storeName: item?._source?.storeName,
|
|
1663
|
+
complianceScore: item?.source?.complianceScore,
|
|
1664
|
+
trustScore: item?._source?.trustScore,
|
|
1576
1665
|
|
|
1577
|
-
|
|
1578
|
-
|
|
1666
|
+
} );
|
|
1667
|
+
}
|
|
1579
1668
|
|
|
1580
1669
|
|
|
1581
1670
|
// throw error if null or undefined or empty array
|
|
1582
1671
|
|
|
1583
1672
|
|
|
1584
|
-
logger.info( { inputData: inputData, getData:
|
|
1585
|
-
return res.sendSuccess( { result:
|
|
1673
|
+
logger.info( { inputData: inputData, getData: response } );
|
|
1674
|
+
return res.sendSuccess( { result: response } );
|
|
1586
1675
|
} catch ( error ) {
|
|
1587
1676
|
const err = error.message || 'Internal Server Error';
|
|
1588
1677
|
logger.error( { message: error, data: req.body, function: 'eyetestAudit-controller-emailAlertLog' } );
|
|
@@ -1599,9 +1688,12 @@ export async function getUserConfig( req, res ) {
|
|
|
1599
1688
|
configureType: 'user',
|
|
1600
1689
|
|
|
1601
1690
|
};
|
|
1602
|
-
const getOne = await findOneEyeTestConfig( query, { userList: 1 } );
|
|
1691
|
+
const getOne = await findOneEyeTestConfig( query, { userList: 1, _id: 1 } );
|
|
1692
|
+
if ( !getOne ) {
|
|
1693
|
+
return res.sendError( ' No data found', 204 );
|
|
1694
|
+
}
|
|
1603
1695
|
logger.info( { getOne: getOne, message: 'getUserConfig' } );
|
|
1604
|
-
return res.sendSuccess( { result: getOne
|
|
1696
|
+
return res.sendSuccess( { result: getOne || [] } );
|
|
1605
1697
|
} catch ( error ) {
|
|
1606
1698
|
const err = error.message || 'Internal Server Error';
|
|
1607
1699
|
logger.error( { message: error, data: req.body, function: 'eyetestAudit-controller-getUserConfig' } );
|
|
@@ -1736,12 +1828,15 @@ export async function getEmailConfig( req, res ) {
|
|
|
1736
1828
|
clientId: clientId,
|
|
1737
1829
|
configureType: 'email',
|
|
1738
1830
|
};
|
|
1739
|
-
const getOne = await findOneEyeTestConfig( query, { complianceThreshold: 1 } );
|
|
1831
|
+
const getOne = await findOneEyeTestConfig( query, { complianceThreshold: 1, _id: 1 } );
|
|
1740
1832
|
logger.info( { getOne: getOne, message: 'getEmailConfig' } );
|
|
1741
1833
|
// if ( !getOne?.complianceThreshold ) {
|
|
1742
1834
|
// return res.sendError( 'No data found', 204 );
|
|
1743
1835
|
// }
|
|
1744
|
-
|
|
1836
|
+
if ( !getOne ) {
|
|
1837
|
+
return res.sendError( ' No data found', 204 );
|
|
1838
|
+
}
|
|
1839
|
+
return res.sendSuccess( { result: getOne } );
|
|
1745
1840
|
} catch ( error ) {
|
|
1746
1841
|
const err = error.message || 'Internal Server Error';
|
|
1747
1842
|
logger.error( { message: error, data: req.body, function: 'eyetestAudit-controller-getEmailConfig' } );
|
|
@@ -60,7 +60,10 @@ export const saveSchema = joi.object( {
|
|
|
60
60
|
auditedSteps: joi.number().required(),
|
|
61
61
|
auditStatus: joi.string().required(),
|
|
62
62
|
overRides: joi.number().required(),
|
|
63
|
+
clientId: joi.string().required(),
|
|
63
64
|
spokenLanguage: joi.string().optional(),
|
|
65
|
+
cluster: joi.string().required().allow( '' ),
|
|
66
|
+
RMEmail: joi.string().required().allow( '' ),
|
|
64
67
|
} );
|
|
65
68
|
|
|
66
69
|
export const saveValid = {
|