tango-app-api-audit 3.4.68-beta.3 → 3.4.68-beta.4

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/README.md CHANGED
@@ -1,29 +1,29 @@
1
- # README #
2
-
3
- This README would normally document whatever steps are necessary to get your application up and running.
4
-
5
- ### What is this repository for? ###
6
-
7
- * Quick summary
8
- * Version
9
- * [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo)
10
-
11
- ### How do I get set up? ###
12
-
13
- * Summary of set up
14
- * Configuration
15
- * Dependencies
16
- * Database configuration
17
- * How to run tests
18
- * Deployment instructions
19
-
20
- ### Contribution guidelines ###
21
-
22
- * Writing tests
23
- * Code review
24
- * Other guidelines
25
-
26
- ### Who do I talk to? ###
27
-
28
- * Repo owner or admin
1
+ # README #
2
+
3
+ This README would normally document whatever steps are necessary to get your application up and running.
4
+
5
+ ### What is this repository for? ###
6
+
7
+ * Quick summary
8
+ * Version
9
+ * [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo)
10
+
11
+ ### How do I get set up? ###
12
+
13
+ * Summary of set up
14
+ * Configuration
15
+ * Dependencies
16
+ * Database configuration
17
+ * How to run tests
18
+ * Deployment instructions
19
+
20
+ ### Contribution guidelines ###
21
+
22
+ * Writing tests
23
+ * Code review
24
+ * Other guidelines
25
+
26
+ ### Who do I talk to? ###
27
+
28
+ * Repo owner or admin
29
29
  * Other community or team contact
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tango-app-api-audit",
3
- "version": "3.4.68-beta.3",
3
+ "version": "3.4.68-beta.4",
4
4
  "description": "audit & audit metrics apis",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -590,6 +590,94 @@ export async function save( req, res ) {
590
590
  }
591
591
  }
592
592
 
593
+ export async function cancel( req, res ) {
594
+ try {
595
+ const inputData = req.body;
596
+ const openSearch = JSON.parse( process.env.OPENSEARCH );
597
+
598
+ let searchFilter =[
599
+ {
600
+ 'term': {
601
+ 'queueId.keyword': inputData?.fileId,
602
+ },
603
+
604
+ },
605
+ {
606
+ 'term': {
607
+ 'type.keyword': inputData?.type,
608
+ },
609
+
610
+ },
611
+
612
+ {
613
+ 'term': {
614
+ 'auditStatus.keyword': 'In-Progress',
615
+ },
616
+ },
617
+ ];
618
+ if ( inputData?.type == 'remote' ) {
619
+ searchFilter =[
620
+ {
621
+ 'term': {
622
+ 'engagementId.keyword': inputData?.fileId,
623
+ },
624
+
625
+ },
626
+ {
627
+ 'term': {
628
+ 'type.keyword': inputData?.type,
629
+ },
630
+
631
+ },
632
+ {
633
+ 'term': {
634
+ 'userId.keyword': req?.user?._id,
635
+ },
636
+ },
637
+ {
638
+ 'term': {
639
+ 'auditStatus.keyword': 'In-Progress',
640
+ },
641
+ },
642
+ ];
643
+ }
644
+
645
+ let searchQuery={
646
+ 'size': 1,
647
+ 'query': {
648
+ 'bool': {
649
+ 'must': searchFilter,
650
+ },
651
+ },
652
+ };
653
+ const getOutput = await getOpenSearchData( openSearch.EyeTestOutput, searchQuery );
654
+ logger.info( { getOutput: getOutput } );
655
+ const output = getOutput?.body?.hits?.hits?.length > 0 ? getOutput?.body?.hits?.hits[0] : null;
656
+ if ( !output ) {
657
+ return res.sendError( 'No saved records found', 400 );
658
+ }
659
+ const record1 ={
660
+
661
+ auditStatus: 'Skipped',
662
+ endTime: dayjs().tz( 'Asia/Kolkata' ),
663
+
664
+ };
665
+ const record2 ={
666
+
667
+ auditStatus: 'Yet-to-Audit',
668
+ endTime: dayjs().tz( 'Asia/Kolkata' ),
669
+
670
+ };
671
+ await updateOpenSearchData( openSearch.EyeTestOutput, output?._id, { doc: record1 } );
672
+ await updateOpenSearchData( openSearch.EyeTestInput, inputData.id, { doc: record2 } );
673
+ return res.sendSuccess( 'The file has canceled ' );
674
+ } catch ( error ) {
675
+ const err = error.message || 'Internal Server Error';
676
+ logger.error( { message: error, data: req.params, function: 'eyetestAudit-controller-cancel' } );
677
+ return res.sendError( err, 500 );
678
+ }
679
+ }
680
+
593
681
  export async function getFileHistory( req, res ) {
594
682
  try {
595
683
  const parsedOpenSearch = JSON.parse( process.env.OPENSEARCH );
@@ -1,5 +1,5 @@
1
1
  import j2s from 'joi-to-swagger';
2
- import { getListSchema, getFileSchema, getFileHistorySchema, userAuditedDataSchema, viewFileSchema, saveSchema } from '../dtos/eyeTestAudit.dtos.js';
2
+ import { getListSchema, getFileSchema, getFileHistorySchema, userAuditedDataSchema, viewFileSchema, saveSchema, cancelSchema } from '../dtos/eyeTestAudit.dtos.js';
3
3
 
4
4
  export const eyeTestAuditDocs = {
5
5
 
@@ -93,6 +93,28 @@ export const eyeTestAuditDocs = {
93
93
  },
94
94
  },
95
95
 
96
+ '/v3/eye-test-audit/cancel': {
97
+ post: {
98
+ tags: [ 'Eye Test Audit' ],
99
+ description: 'cancel eytest audit',
100
+ operationId: 'cancel',
101
+ requestBody: {
102
+ content: {
103
+ 'application/json': {
104
+ schema: j2s( cancelSchema ).swagger,
105
+ },
106
+ },
107
+ },
108
+ responses: {
109
+ 200: { description: 'Successful' },
110
+ 401: { description: 'Unauthorized User' },
111
+ 422: { description: 'Field Error' },
112
+ 500: { description: 'Server Error' },
113
+ 204: { description: 'Not Found' },
114
+ },
115
+ },
116
+ },
117
+
96
118
  '/v3/eye-test-audit/get-file-history/{id}': {
97
119
  get: {
98
120
  tags: [ 'Eye Test Audit' ],
@@ -53,6 +53,17 @@ export const saveValid = {
53
53
  };
54
54
 
55
55
 
56
+ export const cancelSchema = joi.object( {
57
+ type: joi.string().required(),
58
+ fileId: joi.string().required(),
59
+ id: joi.string().required(),
60
+ } );
61
+
62
+ export const cancelValid = {
63
+ body: cancelSchema,
64
+ };
65
+
66
+
56
67
  export const getFileHistorySchema = joi.object( {
57
68
  id: joi.string().required(),
58
69
  type: joi.string().required(),
@@ -1,8 +1,8 @@
1
1
  import { Router } from 'express';
2
2
  import { isAllowedSessionHandler, validate } from 'tango-app-api-middleware';
3
3
  import { accessVerification } from 'tango-app-api-middleware';
4
- import { getFileHistoryValid, getFileValid, getListValid, saveValid, userAuditedDataValid, viewFileValid } from '../dtos/eyeTestAudit.dtos.js';
5
- import { getFile, getFileHistory, getList, save, userAuditedData, viewFile } from '../controllers/eyeTestAudit.controllers.js';
4
+ import { cancelValid, getFileHistoryValid, getFileValid, getListValid, saveValid, userAuditedDataValid, viewFileValid } from '../dtos/eyeTestAudit.dtos.js';
5
+ import { cancel, getFile, getFileHistory, getList, save, userAuditedData, viewFile } from '../controllers/eyeTestAudit.controllers.js';
6
6
 
7
7
  export const eyeTestAuditRouter = Router();
8
8
 
@@ -10,6 +10,7 @@ eyeTestAuditRouter.post( '/get-list', isAllowedSessionHandler, accessVerificatio
10
10
  eyeTestAuditRouter.get( '/view-file/:id', isAllowedSessionHandler, accessVerification( { userType: [ 'tango', 'client' ] } ), validate( viewFileValid ), viewFile );
11
11
  eyeTestAuditRouter.get( '/get-file/:id', isAllowedSessionHandler, accessVerification( { userType: [ 'tango', 'client' ] } ), validate( getFileValid ), getFile );
12
12
  eyeTestAuditRouter.post( '/save', isAllowedSessionHandler, accessVerification( { userType: [ 'tango', 'client' ] } ), validate( saveValid ), save );
13
+ eyeTestAuditRouter.post( '/cancel', isAllowedSessionHandler, accessVerification( { userType: [ 'tango', 'client' ] } ), validate( cancelValid ), cancel );
13
14
  eyeTestAuditRouter.get( '/get-file-history/:id/:type', isAllowedSessionHandler, accessVerification( { userType: [ 'tango', 'client' ] } ), validate( getFileHistoryValid ), getFileHistory );
14
15
  eyeTestAuditRouter.get( '/user-audited-data/:id', isAllowedSessionHandler, accessVerification( { userType: [ 'tango', 'client' ] } ), validate( userAuditedDataValid ), userAuditedData );
15
16