tango-app-api-audit 3.4.0-alpha.1 → 3.4.0-alpha.11

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.
@@ -68,18 +68,12 @@ export const saveSchema = joi.object(
68
68
  auditId: joi.string().required(),
69
69
  storeId: joi.string().required(),
70
70
  fileDate: joi.string().required(),
71
- auditType: joi.string().required(),
72
- moduleType: joi.string().required(),
73
- zoneName: joi.string().required(),
74
- beforeCount: joi.number().required(),
75
- junkCount: joi.number().required(),
76
- junk: joi.array().required(),
77
- employeeCount: joi.number().required(),
78
- employee: joi.array().required(),
79
- customerCount: joi.number().required(),
80
- customer: joi.array().required(),
71
+ tempId: joi.number().optional(),
81
72
  moduleType: joi.string().required(),
82
- zoneName: joi.string().required(),
73
+ question: joi.string().optional(),
74
+ streamName: joi.string().optional(),
75
+ answer: joi.string().required(),
76
+ userComments: joi.string().optional().allow( '' ),
83
77
  },
84
78
  );
85
79
 
@@ -103,3 +97,158 @@ export const workSpaceSchema = joi.object(
103
97
  export const workSpaceValid = {
104
98
  body: workSpaceSchema,
105
99
  };
100
+
101
+ export const userAuditHistorySchema = joi.object(
102
+ {
103
+ userId: joi.string().optional(),
104
+ fromDate: joi.string().required(),
105
+ toDate: joi.string().required(),
106
+ dateType: joi.string().required(),
107
+ clientId: joi.array().optional(),
108
+ filterByStoreId: joi.array().required(),
109
+ moduleType: joi.string().required(),
110
+ filterByAuditType: joi.array().optional(),
111
+ filterByStatus: joi.array().optional(),
112
+ searchValue: joi.string().optional().allow( '' ),
113
+ limit: joi.number().optional(),
114
+ offset: joi.number().optional(),
115
+ sortColumnName: joi.string().optional(),
116
+ sortBy: joi.number().optional(),
117
+ isExport: joi.boolean().optional(),
118
+
119
+ },
120
+ );
121
+
122
+ export const userAuditHistoryValid = {
123
+ body: userAuditHistorySchema,
124
+ };
125
+
126
+ export const clientMetricsSchema = joi.object(
127
+ {
128
+ fromDate: joi.string().required(),
129
+ toDate: joi.string().required(),
130
+ searchValue: joi.string().optional().allow( '' ),
131
+ moduleType: joi.string().required(),
132
+ filterByClient: joi.array().required(),
133
+ filterByStatus: joi.array().optional(),
134
+ sortColumnName: joi.string().optional(),
135
+ sortBy: joi.number().optional(),
136
+ limit: joi.number().optional(),
137
+ offset: joi.number().optional(),
138
+ isExport: joi.boolean().optional(),
139
+ },
140
+ );
141
+
142
+ export const clientMetricsValid = {
143
+ body: clientMetricsSchema,
144
+ };
145
+
146
+ export const storeMetricsSchema = joi.object(
147
+ {
148
+ fromDate: joi.string().required(),
149
+ toDate: joi.string().required(),
150
+ searchValue: joi.string().optional().allow( '' ),
151
+ filterByClientId: joi.array().required(),
152
+ filterByStoreId: joi.array().optional(),
153
+ filterByStatus: joi.array().optional(),
154
+ filterByAuditType: joi.array().optional(),
155
+ moduleType: joi.string().required(),
156
+ sortColumnName: joi.string().optional(),
157
+ sortBy: joi.number().optional(),
158
+ limit: joi.number().optional(),
159
+ offset: joi.number().optional(),
160
+ isExport: joi.boolean().optional(),
161
+ },
162
+ );
163
+
164
+ export const storeMetricsValid = {
165
+ body: storeMetricsSchema,
166
+ };
167
+ export const userMetricsSchema = joi.object(
168
+ {
169
+ fromDate: joi.string().required(),
170
+ toDate: joi.string().required(),
171
+ dateType: joi.string().required(),
172
+ searchValue: joi.string().optional().allow( '' ),
173
+ filterByUser: joi.array().optional(),
174
+ moduleType: joi.string().optional(),
175
+ filterByStatus: joi.array().optional(),
176
+ sortColumnName: joi.string().optional(),
177
+ sortBy: joi.number().optional(),
178
+ limit: joi.number().optional(),
179
+ offset: joi.number().optional(),
180
+ isExport: joi.boolean().optional(),
181
+ },
182
+ );
183
+
184
+ export const userMetricsValid = {
185
+ body: userMetricsSchema,
186
+ };
187
+
188
+ export const pendingSummaryTableSchema = joi.object(
189
+ {
190
+ fromDate: joi.string().required(),
191
+ toDate: joi.string().required(),
192
+ clientId: joi.array().optional(),
193
+ limit: joi.number().optional(),
194
+ offset: joi.number().optional(),
195
+ searchValue: joi.string().optional().allow( '' ),
196
+ filterByStatus: joi.array().required(),
197
+ moduleType: joi.string().required(),
198
+ filterByAuditType: joi.array().optional(),
199
+ sortColumnName: joi.string().optional(),
200
+ sortBy: joi.number().optional(),
201
+ isExport: joi.boolean().optional(),
202
+ },
203
+ );
204
+
205
+ export const pendingSummaryTableValid = {
206
+ body: pendingSummaryTableSchema,
207
+ };
208
+
209
+ export const overAllAuditSummarySchema = joi.object(
210
+ {
211
+ fromDate: joi.string().required(),
212
+ toDate: joi.string().required(),
213
+ clientId: joi.array().optional(),
214
+ moduleType: joi.string().required(),
215
+ },
216
+ );
217
+
218
+ export const overAllAuditSummaryValid = {
219
+ body: overAllAuditSummarySchema,
220
+ };
221
+
222
+ export const summarySplitSchema = joi.object(
223
+ {
224
+ fromDate: joi.string().required(),
225
+ toDate: joi.string().required(),
226
+ clientId: joi.array().optional(),
227
+ moduleType: joi.string().optional(),
228
+ },
229
+ );
230
+
231
+ export const summarySplitValid = {
232
+ body: summarySplitSchema,
233
+ };
234
+
235
+ export const overviewTableSchema = joi.object(
236
+ {
237
+ fromDate: joi.string().required(),
238
+ toDate: joi.string().required(),
239
+ clientId: joi.array().optional(),
240
+ limit: joi.number().optional(),
241
+ offset: joi.number().optional(),
242
+ searchValue: joi.string().optional().allow( '' ),
243
+ filterByStatus: joi.array().optional(),
244
+ moduleType: joi.string().optional(),
245
+ filterByAuditType: joi.array().optional(),
246
+ sortColumnName: joi.string().optional(),
247
+ sortBy: joi.number().optional(),
248
+ isExport: joi.boolean().optional(),
249
+ },
250
+ );
251
+
252
+ export const overviewTableValid= {
253
+ body: overviewTableSchema,
254
+ };
@@ -1,17 +1,36 @@
1
1
  import { Router } from 'express';
2
2
  import { isAllowedSessionHandler, validate } from 'tango-app-api-middleware';
3
- import { getDetectionFileValid, getFileValid } from '../dtos/traxAudit.dtos.js';
3
+ import { getDetectionFileValid, getFileValid, userAuditHistoryValid, workSpaceValid, saveValid, clientMetricsValid, storeMetricsValid, userMetricsValid, pendingSummaryTableValid, overAllAuditSummaryValid, summarySplitValid, overviewTableValid } from '../dtos/traxAudit.dtos.js';
4
4
  import { isExistsQueue } from '../validation/audit.validation.js';
5
- import { getAuditFile, getDetectionAuditFile } from '../controllers/traxAudit.controllers.js';
5
+ import { clientMetrics, getAuditFile, getDetectionAuditFile, overAllAuditSummary, overviewTable, pendingSummaryTable, saveBinary, storeMetrics, summarySplit, userAuditHistory, userMetrics, workSpace } from '../controllers/traxAudit.controllers.js';
6
+ import { validateBinaryAudit } from '../validation/traxAuditValidation.js';
6
7
 
7
8
  export const traxAuditRouter = Router();
8
9
 
9
10
  // Audit Mapping
10
- traxAuditRouter.get( '/get-file', isAllowedSessionHandler, validate( getFileValid ), isExistsQueue, getAuditFile );
11
- traxAuditRouter.get( '/get-file', isAllowedSessionHandler, validate( getDetectionFileValid ), isExistsQueue, getDetectionAuditFile );
11
+
12
+ traxAuditRouter.get( '/get-file-detection', isAllowedSessionHandler, validate( getDetectionFileValid ), isExistsQueue, getDetectionAuditFile );
12
13
  // traxAuditRouter.post( '/save-draft', isAllowedSessionHandler, validate( saveDraftValid ), saveDraft );
13
14
  // traxAuditRouter.get( '/get-drafted-data', isAllowedSessionHandler, validate( getDraftedDataValid ), getDraftedData );
14
- // traxAuditRouter.post( '/save', isAllowedSessionHandler, validate( saveValid ), validateUserAudit, save );
15
- // traxAuditRouter.post( '/work-space', isAllowedSessionHandler, validate( workSpaceValid ), workSpace );
15
+ // traxAuditRouter.post( '/save', isAllowedSessionHandler, validate( saveValid ), validateUserEmpDetection, save ); use this validateuserEMpDetection
16
+ traxAuditRouter.post( '/work-space', isAllowedSessionHandler, validate( workSpaceValid ), workSpace );
17
+
18
+
19
+ // Y/n
20
+ traxAuditRouter.get( '/get-file', isAllowedSessionHandler, validate( getFileValid ), isExistsQueue, getAuditFile );
21
+ traxAuditRouter.post( '/save-binary-audit', isAllowedSessionHandler, validate( saveValid ), validateBinaryAudit, saveBinary );
22
+
23
+ // metrcis
24
+ traxAuditRouter.post( '/metrics/user-audit-history', isAllowedSessionHandler, validate( userAuditHistoryValid ), userAuditHistory );
25
+ traxAuditRouter.post( '/metrics/client-metrics', isAllowedSessionHandler, validate( clientMetricsValid ), clientMetrics );
26
+ traxAuditRouter.post( '/metrics/store-metrics', isAllowedSessionHandler, validate( storeMetricsValid ), storeMetrics );
27
+ traxAuditRouter.post( '/metrics/user-metrics', isAllowedSessionHandler, validate( userMetricsValid ), userMetrics );
28
+ traxAuditRouter.post( '/metrics/pending-summary-table', isAllowedSessionHandler, validate( pendingSummaryTableValid ), pendingSummaryTable );
29
+ traxAuditRouter.post( '/metrics/overall-audit-summary', isAllowedSessionHandler, validate( overAllAuditSummaryValid ), overAllAuditSummary );
30
+
31
+ // summary
32
+
33
+ traxAuditRouter.post( '/metrics/summary-split-up', isAllowedSessionHandler, validate( summarySplitValid ), summarySplit );
34
+ traxAuditRouter.post( '/metrics/overview-table', isAllowedSessionHandler, validate( overviewTableValid ), overviewTable );
16
35
 
17
36
  export default traxAuditRouter;
@@ -5,6 +5,14 @@ export function createBinaryAudit( record ) {
5
5
  return binaryAuditModel.create( record );
6
6
  }
7
7
 
8
- export function aggregateBinaryAuditModel( query ) {
8
+ export function aggregateBinaryAudit( query ) {
9
9
  return binaryAuditModel.aggregate( query, { collation: { locale: 'en', strength: 2 } } );
10
10
  }
11
+
12
+ export function findOneBinaryAudit( query ) {
13
+ return binaryAuditModel.findOne( query );
14
+ }
15
+
16
+ export function updateOneBinaryAuditModel( query, record ) {
17
+ return binaryAuditModel.updateOne( query, { $set: record } );
18
+ }
@@ -0,0 +1,6 @@
1
+ import storeEmpDetectionModel from 'tango-api-schema/schema/storeEmpDetection.model.js';
2
+
3
+
4
+ export function aggregateStoreEmpDetection( query ) {
5
+ return storeEmpDetectionModel.aggregate( query, { collation: { locale: 'en', strength: 2 } } );
6
+ }
@@ -0,0 +1,10 @@
1
+
2
+ import traxAuditDataModel from 'tango-api-schema/schema/traxAuditData.model.js';
3
+
4
+ export function findOneTraxAuditData( query, fields, sort ) {
5
+ return traxAuditDataModel.findOne( query, fields ).sort( sort );
6
+ }
7
+
8
+ export function aggregateTraxAuditData( query ) {
9
+ return traxAuditDataModel.aggregate( query, { collation: { locale: 'en', strength: 2 } } );
10
+ }
@@ -1,6 +1,14 @@
1
1
  import userEmpDetectionModel from 'tango-api-schema/schema/userEmpDetection.model.js';
2
2
 
3
3
 
4
- export function aggregateUserAudit( query ) {
4
+ export function aggregateUserEmpDetection( query ) {
5
5
  return userEmpDetectionModel.aggregate( query, { collation: { locale: 'en', strength: 2 } } );
6
6
  }
7
+
8
+ export function createUserEmpDetection( record ) {
9
+ return userEmpDetectionModel.create( record );
10
+ }
11
+
12
+ export function findOneUserEmpDetection( query, fields ) {
13
+ return userEmpDetectionModel.findOne( query, fields );
14
+ }
@@ -0,0 +1,57 @@
1
+ import { logger } from 'tango-app-api-middleware';
2
+ import { findOneBinaryAudit, updateOneBinaryAuditModel } from '../service/binaryAudit.service.js';
3
+ import { findOneUserEmpDetection } from '../service/userEmpDetection.service.js';
4
+
5
+ export async function validateUserEmpDetection( req, res, next ) {
6
+ try {
7
+ const inputData = req.body;
8
+ const userAuditDetails = await findOneUserEmpDetection( {
9
+ _id: inputData.auditId,
10
+ } );
11
+ if ( !userAuditDetails ) {
12
+ return res.sendError( 'No Data Available' );
13
+ } else if ( userAuditDetails && userAuditDetails.auditStatus == 'skipped' ) {
14
+ return res.sendError( 'The Audit file Assigned to some one else', 203 );
15
+ }
16
+ req.userAudit = userAuditDetails;
17
+ next();
18
+ } catch ( error ) {
19
+ const err = error.message || 'Internal Server Error';
20
+ logger.error( {
21
+ error: error,
22
+ message: req.query,
23
+ function: 'validateUserEmpDetection',
24
+ } );
25
+ return res.sendError( err, 500 );
26
+ }
27
+ }
28
+
29
+ export async function validateBinaryAudit( req, res, next ) {
30
+ try {
31
+ const inputData = req.body;
32
+ const userAuditDetails = await findOneBinaryAudit( {
33
+ _id: inputData.auditId,
34
+ } );
35
+ if ( !userAuditDetails ) {
36
+ return res.sendError( 'No Data Available' );
37
+ } else if (
38
+ userAuditDetails &&
39
+ userAuditDetails.auditStatus == 'completed'
40
+ ) {
41
+ await updateOneBinaryAuditModel(
42
+ { _id: inputData.auditId },
43
+ { auditType: 'ReAudit' },
44
+ );
45
+ }
46
+ req.userAudit = userAuditDetails;
47
+ next();
48
+ } catch ( error ) {
49
+ const err = error.message || 'Internal Server Error';
50
+ logger.error( {
51
+ error: error,
52
+ message: req.query,
53
+ function: 'validateBinaryAudit',
54
+ } );
55
+ return res.sendError( err, 500 );
56
+ }
57
+ }