tango-app-api-analysis-traffic 3.0.0-alpha.32 → 3.0.0-alpha.34

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,6 +1,6 @@
1
1
  {
2
2
  "name": "tango-app-api-analysis-traffic",
3
- "version": "3.0.0-alpha.32",
3
+ "version": "3.0.0-alpha.34",
4
4
  "description": "Traffic Analysis",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -62,6 +62,33 @@ export const cardsFunnelV1 = async ( req, res ) => {
62
62
  }
63
63
  };
64
64
 
65
+ export const funnelV1 = async ( req, res ) => {
66
+ try {
67
+ let reqestData = req.body;
68
+ let getClientData = await getClientConfig( reqestData.clientId );
69
+ if ( !getClientData ) {
70
+ return res.sendError( 'Invalid Client Id', 400 );
71
+ }
72
+ reqestData.featureConfigs = getClientData.featureConfigs;
73
+ reqestData.currency = getClientData.paymentInvoice?.currencyType || 'inr';
74
+ reqestData.revenue = getClientData.averageTransactionValue || '0';
75
+ let LamdaURL = 'https://k3mv4jr6w7er4tn3ku2kkdgdha0ovyog.lambda-url.ap-south-1.on.aws/';
76
+ let resultData = await LamdaServiceCall( LamdaURL, reqestData );
77
+ if ( resultData ) {
78
+ if ( resultData.status_code == '200' ) {
79
+ return res.sendSuccess( resultData );
80
+ } else {
81
+ return res.sendError( 'No Content', 204 );
82
+ }
83
+ } else {
84
+ return res.sendError( 'No Content', 204 );
85
+ }
86
+ } catch ( error ) {
87
+ logger.error( { error: error, message: req.query, function: 'funnelV1' } );
88
+ return res.sendError( { error: error }, 500 );
89
+ }
90
+ };
91
+
65
92
  export const cardsGraphsV1 = async ( req, res ) => {
66
93
  try {
67
94
  let reqestData = req.body;
@@ -7,12 +7,12 @@ const baseSchema = {
7
7
  fromDate: joi.string().required(),
8
8
  toDate: joi.string().required(),
9
9
  valueType: joi.string().optional().allow( '' ),
10
+ nob: joi.boolean().optional().allow( '' ),
10
11
  };
11
12
 
12
13
  // Schema for Card Funnel
13
14
  export const validateCardFunnelSchema = joi.object( {
14
15
  ...baseSchema,
15
- nob: joi.boolean().optional().allow( '' ),
16
16
  } );
17
17
 
18
18
  export const validateCardFunnelParams = {
@@ -34,6 +34,7 @@ export const validateRecapVideoSchema = joi.object( {
34
34
  storeId: joi.array().required().empty(),
35
35
  recapVideoDate: joi.string().required(),
36
36
  valueType: joi.string().optional().allow( '' ),
37
+ nob: joi.boolean().optional().allow( '' ),
37
38
  } );
38
39
 
39
40
  export const validateRecapVideoParams = {
@@ -73,7 +74,6 @@ export const validateOverallCharSchema = joi.object( {
73
74
  limit: joi.number().required(),
74
75
  offset: joi.number().required(),
75
76
  processType: joi.string().required(),
76
- nob: joi.boolean().optional().allow( '' ),
77
77
  } );
78
78
 
79
79
  export const validateOverallCharParams = {
@@ -85,7 +85,6 @@ export const validateSingleStoreChartSchema = joi.object( {
85
85
  limit: joi.number().required(),
86
86
  offset: joi.number().required(),
87
87
  processType: joi.string().required(),
88
- nob: joi.boolean().optional().allow( '' ),
89
88
  } );
90
89
 
91
90
  export const validateSingleStoreChartParams = {
@@ -95,7 +94,6 @@ export const validateSingleStoreChartParams = {
95
94
  export const validateDemographicChartSchema = joi.object( {
96
95
  ...baseSchema,
97
96
  processType: joi.string().required(),
98
- nob: joi.boolean().optional().allow( '' ),
99
97
  } );
100
98
 
101
99
  export const validateDemographicChartParams = {
@@ -105,7 +103,6 @@ export const validateDemographicChartParams = {
105
103
  export const validateBuyerChartSchema = joi.object( {
106
104
  ...baseSchema,
107
105
  processType: joi.string().required(),
108
- nob: joi.boolean().optional().allow( '' ),
109
106
  } );
110
107
 
111
108
  export const validateBuyerChartParams = {
@@ -118,6 +115,7 @@ export const validateFootfallDirectoryFoldersSchema = joi.object( {
118
115
  footfallDate: joi.string().required(),
119
116
  processType: joi.string().required(),
120
117
  valueType: joi.string().optional().allow( '' ),
118
+ nob: joi.boolean().optional().allow( '' ),
121
119
  } );
122
120
 
123
121
  export const validateFootfallDirectoryFoldersParams = {
@@ -131,6 +129,7 @@ export const validateFootfallDirectorySchema = joi.object( {
131
129
  processType: joi.string().required(),
132
130
  folderName: joi.string().required(),
133
131
  valueType: joi.string().optional().allow( '' ),
132
+ nob: joi.boolean().optional().allow( '' ),
134
133
  } );
135
134
 
136
135
  export const validateFootfallDirectoryParams = {
@@ -146,7 +145,6 @@ export const validateSummaryTableSchema = joi.object( {
146
145
  limit: joi.number().required(),
147
146
  offset: joi.number().required(),
148
147
  export: joi.boolean().required(),
149
- nob: joi.boolean().optional().allow( '' ),
150
148
  } );
151
149
 
152
150
  export const validateSummaryTableParams = {
@@ -163,7 +161,6 @@ export const validateFootfallTrendSchema = joi.object( {
163
161
  offset: joi.number().required(),
164
162
  sortBy: joi.number().optional().allow( '' ),
165
163
  sort: joi.string().optional().allow( '' ),
166
- nob: joi.boolean().optional().allow( '' ),
167
164
  } );
168
165
 
169
166
  export const validateFootfallTrendParams = {
@@ -182,6 +179,7 @@ export const validateStoresMapSchema = joi.object( {
182
179
  clientId: joi.string().required(),
183
180
  storeId: joi.array().required().empty(),
184
181
  storeDate: joi.string().required(),
182
+ nob: joi.boolean().optional().allow( '' ),
185
183
  } );
186
184
 
187
185
  export const validateStoresMapParams = {
@@ -53,6 +53,7 @@ import {
53
53
  headerGroupsV1,
54
54
  getMySubscription,
55
55
  getStoreMapData,
56
+ funnelV1,
56
57
  } from '../controllers/tangoTrafficV1.controllers.js';
57
58
 
58
59
 
@@ -84,6 +85,11 @@ analysisTrafficRouter
84
85
  { featureName: 'analytics', name: 'tangoTraffic', permissions: [ 'isView' ] },
85
86
  ],
86
87
  } ), validate( validationDtos.validateCardFunnelParams ), cardsFunnelV1 )
88
+ .post( '/funnel_v1', isAllowedSessionHandler, isAllowedClient, authorize( {
89
+ userType: [ 'tango', 'client' ], access: [
90
+ { featureName: 'analytics', name: 'tangoTraffic', permissions: [ 'isView' ] },
91
+ ],
92
+ } ), validate( validationDtos.validateCardFunnelParams ), funnelV1 )
87
93
  .post( '/cardsGraphs_v1', isAllowedSessionHandler, isAllowedClient, authorize( {
88
94
  userType: [ 'tango', 'client' ], access: [
89
95
  { featureName: 'analytics', name: 'tangoTraffic', permissions: [ 'isView' ] },