tango-app-api-client 3.4.3-beta.4 → 3.6.0
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/.eslintrc.cjs +1 -1
- package/build.js +25 -0
- package/package.json +46 -43
- package/src/controllers/client.controllers.js +1116 -342
- package/src/docs/client.docs.js +2 -10
- package/src/dtos/client.dtos.js +48 -2
- package/src/hbs/approved-client.hbs +170 -170
- package/src/routes/client.routes.js +16 -2
- package/src/service/auditConfig.service.js +13 -0
- package/src/service/client.service.js +6 -0
- package/src/service/revopConfig.service.js +16 -0
package/src/docs/client.docs.js
CHANGED
|
@@ -400,20 +400,12 @@ export const clientDocs = {
|
|
|
400
400
|
},
|
|
401
401
|
},
|
|
402
402
|
|
|
403
|
-
'/v3/client/activity-log
|
|
403
|
+
'/v3/client/activity-log': {
|
|
404
404
|
post: {
|
|
405
405
|
tags: [ 'Client' ],
|
|
406
406
|
description: 'Activity log',
|
|
407
407
|
operationId: 'activity-log',
|
|
408
|
-
parameters: [
|
|
409
|
-
in: 'path',
|
|
410
|
-
name: 'id',
|
|
411
|
-
required: true,
|
|
412
|
-
description: 'The ID of the client.',
|
|
413
|
-
schema: {
|
|
414
|
-
type: 'string',
|
|
415
|
-
},
|
|
416
|
-
} ],
|
|
408
|
+
parameters: [],
|
|
417
409
|
requestBody: {
|
|
418
410
|
content: {
|
|
419
411
|
'application/json': {
|
package/src/dtos/client.dtos.js
CHANGED
|
@@ -52,8 +52,8 @@ export const signatoryDetailsSchemaBody = joi.object( {
|
|
|
52
52
|
name: joi.string().optional(),
|
|
53
53
|
email: joi.string().email().message( 'Enter a valid email' ).optional(),
|
|
54
54
|
number: joi.string()
|
|
55
|
-
.pattern( /^\d{
|
|
56
|
-
.message( '
|
|
55
|
+
.pattern( /^\d{7,15}$/ )
|
|
56
|
+
.message( 'Mobile Number Must be Valid' )
|
|
57
57
|
.optional(),
|
|
58
58
|
designation: joi.string().optional(),
|
|
59
59
|
} );
|
|
@@ -120,9 +120,15 @@ export const featureConfigurationSchemaBody = joi.object(
|
|
|
120
120
|
isNOB: joi.boolean().optional(),
|
|
121
121
|
isNewZoneV2: joi.boolean().optional(),
|
|
122
122
|
isTrax: joi.boolean().optional(),
|
|
123
|
+
isRevops: joi.boolean().optional(),
|
|
123
124
|
isControlCenter: joi.boolean().optional(),
|
|
124
125
|
isFootfallDirectoryAudit: joi.boolean().optional(),
|
|
125
126
|
isFootfallDirectoryLimit: joi.boolean().optional(),
|
|
127
|
+
streamBy: joi.string().optional(),
|
|
128
|
+
isFootfallView: joi.boolean().optional(),
|
|
129
|
+
isAIManager: joi.boolean().optional(),
|
|
130
|
+
isAIManagerAccessControl: joi.boolean().optional(),
|
|
131
|
+
isCameraEdit: joi.boolean().optional(),
|
|
126
132
|
},
|
|
127
133
|
);
|
|
128
134
|
|
|
@@ -297,3 +303,43 @@ export const postClientCamApprovalValid = {
|
|
|
297
303
|
query: postClientCamApprovalSchamaQuery,
|
|
298
304
|
body: postClientCamApprovalSchamaBody,
|
|
299
305
|
};
|
|
306
|
+
export const createAuditConfigBody = joi.object( {
|
|
307
|
+
AuditName: joi.string().required(),
|
|
308
|
+
keyWord: joi.string().required(),
|
|
309
|
+
fileType: joi.string().required(),
|
|
310
|
+
status: joi.string().required(),
|
|
311
|
+
responseType: joi.string().required(),
|
|
312
|
+
clientId: joi.string().required(),
|
|
313
|
+
} );
|
|
314
|
+
export const AuditConfiglistValid = joi.object( {
|
|
315
|
+
isExport: joi.boolean().optional(),
|
|
316
|
+
searchValue: joi.string().optional(),
|
|
317
|
+
sortColumName: joi.string().optional(),
|
|
318
|
+
sortBy: joi.number().optional(),
|
|
319
|
+
clientId: joi.array().required(),
|
|
320
|
+
limit: joi.number().optional(),
|
|
321
|
+
offset: joi.number().optional(),
|
|
322
|
+
} );
|
|
323
|
+
export const createAuditConfigValid = {
|
|
324
|
+
body: createAuditConfigBody,
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
export const revopconfigBody = joi.object( {
|
|
328
|
+
clientId: joi.string().required(),
|
|
329
|
+
issueList: joi.array().items(
|
|
330
|
+
joi.object( {
|
|
331
|
+
name: joi.string().required(),
|
|
332
|
+
issues: joi.array().required(),
|
|
333
|
+
} ),
|
|
334
|
+
).required(),
|
|
335
|
+
} );
|
|
336
|
+
export const revopconfiggetBody = joi.object( {
|
|
337
|
+
clientId: joi.string().required(),
|
|
338
|
+
} );
|
|
339
|
+
|
|
340
|
+
export const revopconfigValid = {
|
|
341
|
+
body: revopconfigBody,
|
|
342
|
+
};
|
|
343
|
+
export const revopconfiggetValid = {
|
|
344
|
+
query: revopconfiggetBody,
|
|
345
|
+
};
|
|
@@ -1,171 +1,171 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
6
|
-
<title>Your account was approved!</title>
|
|
7
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
8
|
-
<style type="text/css">
|
|
9
|
-
@media screen {
|
|
10
|
-
@font-face {
|
|
11
|
-
font-family: 'Inter';
|
|
12
|
-
font-style: normal;
|
|
13
|
-
font-weight: 400;
|
|
14
|
-
font-display: swap;
|
|
15
|
-
src: local("Inter"), local("Inter-Regular"), url(https://fonts.gstatic.com/s/inter/v12/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZJhiI2B.woff2) format('woff2');
|
|
16
|
-
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
body {
|
|
21
|
-
font-family: "Inter", sans-serif !important;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
body,
|
|
25
|
-
table,
|
|
26
|
-
td,
|
|
27
|
-
a {
|
|
28
|
-
-ms-text-size-adjust: 100%;
|
|
29
|
-
-webkit-text-size-adjust: 100%;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
table,
|
|
33
|
-
td {
|
|
34
|
-
mso-table-rspace: 0pt;
|
|
35
|
-
mso-table-lspace: 0pt;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
img {
|
|
39
|
-
-ms-interpolation-mode: bicubic;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
a[x-apple-data-detectors] {
|
|
43
|
-
font-family: "inherit" !important;
|
|
44
|
-
font-size: inherit !important;
|
|
45
|
-
font-weight: inherit !important;
|
|
46
|
-
line-height: inherit !important;
|
|
47
|
-
color: inherit !important;
|
|
48
|
-
text-decoration: none !important;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
div[style*="margin: 16px 0;"] {
|
|
52
|
-
margin: 0 !important;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
body {
|
|
56
|
-
width: 100% !important;
|
|
57
|
-
height: 100% !important;
|
|
58
|
-
padding: 0 !important;
|
|
59
|
-
margin: 0 !important;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
table {
|
|
63
|
-
border-collapse: collapse !important;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
a {
|
|
67
|
-
color: #1a82e2;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
img {
|
|
71
|
-
height: auto;
|
|
72
|
-
line-height: 100%;
|
|
73
|
-
text-decoration: none;
|
|
74
|
-
border: 0;
|
|
75
|
-
outline: none;
|
|
76
|
-
}
|
|
77
|
-
</style>
|
|
78
|
-
</head>
|
|
79
|
-
<body style="background-color: #dbe5ea;">
|
|
80
|
-
<div class="preheader" style="display: none; max-width: 0; max-height: 0; overflow: hidden; font-size: 1px; line-height: 1px; color: #fff; opacity: 0;"> Email Summary (Hidden) </div>
|
|
81
|
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="padding-left:10px;padding-right:10px">
|
|
82
|
-
<tr>
|
|
83
|
-
<td bgcolor="#dbe5ea" style="padding:32px 10px 0 10px">
|
|
84
|
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" align="center">
|
|
85
|
-
<tr>
|
|
86
|
-
<td class="o_bg-white o_px-md o_py-md o_sans o_text" style="margin-top: 0px;margin-bottom: 0px;font-size: 16px;line-height: 24px;background-color: #ffffff;padding-left: 18px;padding-right: 24px;padding-top: 24px;padding-bottom: 24px;">
|
|
87
|
-
<p style="margin-top: 0px;margin-bottom: 0px;">
|
|
88
|
-
<a class="o_text-white" href="https://tangoeye.ai/" style="text-decoration: none;outline: none;color: #ffffff;">
|
|
89
|
-
<img src={{logo}} width="200" height="100" alt="SimpleApp" style="-ms-interpolation-mode: bicubic;vertical-align: middle;border: 0;line-height: 100%;height: auto;outline: none;text-decoration: none;">
|
|
90
|
-
</a>
|
|
91
|
-
</p>
|
|
92
|
-
</td>
|
|
93
|
-
</tr>
|
|
94
|
-
<tr>
|
|
95
|
-
<td align="left" bgcolor="#ffffff" style="padding-left: 30px;padding-right: 24px; font-size: 14px; line-height: 24px;">
|
|
96
|
-
<p class="o_heading o_mb-xxs" style="width: 544px;height: 0px;border: 1px solid #CBD5E1;flex: none;order: 1;flex-grow: 0;"></p>
|
|
97
|
-
</td>
|
|
98
|
-
</tr>
|
|
99
|
-
</table>
|
|
100
|
-
</td>
|
|
101
|
-
</tr>
|
|
102
|
-
<tr>
|
|
103
|
-
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
104
|
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
105
|
-
<tr>
|
|
106
|
-
<td class="o_bg-white o_px-md o_py-xl o_xs-py-md" style="background-color: #ffffff;padding-left: 30px;padding-right: 24px;padding-top: 10px;padding-bottom: 10px;">
|
|
107
|
-
<div class="o_col-6s o_sans o_text-md o_text-light o_center" style="margin-top: 0px;margin-bottom: 0px;font-size: 20px;line-height: 28px;color: #82899a;">
|
|
108
|
-
<span class="o_heading o_text-dark o_mb-xxs" style="font-weight: 700;margin-top: 0px;margin-bottom: 4px;color: #242b3d;line-height: 39px;"> Your account was approved!</span>
|
|
109
|
-
</div>
|
|
110
|
-
</td>
|
|
111
|
-
</tr>
|
|
112
|
-
</table>
|
|
113
|
-
</td>
|
|
114
|
-
</tr>
|
|
115
|
-
<tr>
|
|
116
|
-
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
117
|
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
118
|
-
<tr>
|
|
119
|
-
<td align="left" bgcolor="#ffffff" style="padding-left: 30px;padding-right: 24px; font-size: 16px;padding-top:10px; line-height: 24px;font-weight:400;color:#384860">
|
|
120
|
-
<p style="margin: 0;">As a verified user, you will be among the first to receive product updates, new feature announcements, enhanced security and personalised support.
|
|
121
|
-
<br><br>
|
|
122
|
-
Head over to the dashboard to finish your setup. </p>
|
|
123
|
-
</td>
|
|
124
|
-
</tr>
|
|
125
|
-
</table>
|
|
126
|
-
</td>
|
|
127
|
-
</tr>
|
|
128
|
-
<tr>
|
|
129
|
-
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
130
|
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
131
|
-
<tr>
|
|
132
|
-
<td align="left" bgcolor="#fff" style="border-radius: 6px;padding:14px 30px">
|
|
133
|
-
<a href={{url}} style="display: inline-block;padding: 10px 36px;font-size: 20px;color: #fff;text-decoration: none;border-radius: 6px;background-color: #00a3ff;"> Add Stores</a>
|
|
134
|
-
</td>
|
|
135
|
-
</tr>
|
|
136
|
-
</table>
|
|
137
|
-
</td>
|
|
138
|
-
</tr>
|
|
139
|
-
<tr>
|
|
140
|
-
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
141
|
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
142
|
-
<tr>
|
|
143
|
-
<td align="left" bgcolor="#ffffff" style="padding-left: 30px;padding-right: 24px; font-size: 16px;padding-top:10px; line-height: 24px;font-weight:400;color:#384860">
|
|
144
|
-
<p style="margin: 0;">Enjoy the full potential of Tango Traffic Module. If you have any questions or need assistance, our support team is here to help.
|
|
145
|
-
|
|
146
|
-
<br><br>
|
|
147
|
-
|
|
148
|
-
Happy exploring! </p>
|
|
149
|
-
</td>
|
|
150
|
-
</tr>
|
|
151
|
-
</table>
|
|
152
|
-
</td>
|
|
153
|
-
</tr>
|
|
154
|
-
<tr>
|
|
155
|
-
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 32px 10px">
|
|
156
|
-
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
157
|
-
<tr>
|
|
158
|
-
<td class="o_bg-white o_px-md o_py-xl o_xs-py-md" style="background-color: #ffffff;padding-left: 30px;padding-right: 24px;padding-bottom:15px">
|
|
159
|
-
<div class="o_col-6s o_sans o_text-md o_text-light o_center" style="margin-top: 0px;margin-bottom: 0px;font-size: 12px;color: #202B3C;font-style: normal;font-weight: 400;font-size: 12px;line-height: 150%;">
|
|
160
|
-
<br>
|
|
161
|
-
<p>If you'd rather not receive this kind of email, Don’t want any more emails from TangoEye?<u style="color:#00A3FF">Unsubscribe</u>.</p>
|
|
162
|
-
<p> © Tango Eye. All rights reserved.</p>
|
|
163
|
-
</div>
|
|
164
|
-
</td>
|
|
165
|
-
</tr>
|
|
166
|
-
</table>
|
|
167
|
-
</td>
|
|
168
|
-
</tr>
|
|
169
|
-
</table>
|
|
170
|
-
</body>
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
6
|
+
<title>Your account was approved!</title>
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
8
|
+
<style type="text/css">
|
|
9
|
+
@media screen {
|
|
10
|
+
@font-face {
|
|
11
|
+
font-family: 'Inter';
|
|
12
|
+
font-style: normal;
|
|
13
|
+
font-weight: 400;
|
|
14
|
+
font-display: swap;
|
|
15
|
+
src: local("Inter"), local("Inter-Regular"), url(https://fonts.gstatic.com/s/inter/v12/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZJhiI2B.woff2) format('woff2');
|
|
16
|
+
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
body {
|
|
21
|
+
font-family: "Inter", sans-serif !important;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
body,
|
|
25
|
+
table,
|
|
26
|
+
td,
|
|
27
|
+
a {
|
|
28
|
+
-ms-text-size-adjust: 100%;
|
|
29
|
+
-webkit-text-size-adjust: 100%;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
table,
|
|
33
|
+
td {
|
|
34
|
+
mso-table-rspace: 0pt;
|
|
35
|
+
mso-table-lspace: 0pt;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
img {
|
|
39
|
+
-ms-interpolation-mode: bicubic;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
a[x-apple-data-detectors] {
|
|
43
|
+
font-family: "inherit" !important;
|
|
44
|
+
font-size: inherit !important;
|
|
45
|
+
font-weight: inherit !important;
|
|
46
|
+
line-height: inherit !important;
|
|
47
|
+
color: inherit !important;
|
|
48
|
+
text-decoration: none !important;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
div[style*="margin: 16px 0;"] {
|
|
52
|
+
margin: 0 !important;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
body {
|
|
56
|
+
width: 100% !important;
|
|
57
|
+
height: 100% !important;
|
|
58
|
+
padding: 0 !important;
|
|
59
|
+
margin: 0 !important;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
table {
|
|
63
|
+
border-collapse: collapse !important;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
a {
|
|
67
|
+
color: #1a82e2;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
img {
|
|
71
|
+
height: auto;
|
|
72
|
+
line-height: 100%;
|
|
73
|
+
text-decoration: none;
|
|
74
|
+
border: 0;
|
|
75
|
+
outline: none;
|
|
76
|
+
}
|
|
77
|
+
</style>
|
|
78
|
+
</head>
|
|
79
|
+
<body style="background-color: #dbe5ea;">
|
|
80
|
+
<div class="preheader" style="display: none; max-width: 0; max-height: 0; overflow: hidden; font-size: 1px; line-height: 1px; color: #fff; opacity: 0;"> Email Summary (Hidden) </div>
|
|
81
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="padding-left:10px;padding-right:10px">
|
|
82
|
+
<tr>
|
|
83
|
+
<td bgcolor="#dbe5ea" style="padding:32px 10px 0 10px">
|
|
84
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;" align="center">
|
|
85
|
+
<tr>
|
|
86
|
+
<td class="o_bg-white o_px-md o_py-md o_sans o_text" style="margin-top: 0px;margin-bottom: 0px;font-size: 16px;line-height: 24px;background-color: #ffffff;padding-left: 18px;padding-right: 24px;padding-top: 24px;padding-bottom: 24px;">
|
|
87
|
+
<p style="margin-top: 0px;margin-bottom: 0px;">
|
|
88
|
+
<a class="o_text-white" href="https://tangoeye.ai/" style="text-decoration: none;outline: none;color: #ffffff;">
|
|
89
|
+
<img src={{logo}} width="200" height="100" alt="SimpleApp" style="-ms-interpolation-mode: bicubic;vertical-align: middle;border: 0;line-height: 100%;height: auto;outline: none;text-decoration: none;">
|
|
90
|
+
</a>
|
|
91
|
+
</p>
|
|
92
|
+
</td>
|
|
93
|
+
</tr>
|
|
94
|
+
<tr>
|
|
95
|
+
<td align="left" bgcolor="#ffffff" style="padding-left: 30px;padding-right: 24px; font-size: 14px; line-height: 24px;">
|
|
96
|
+
<p class="o_heading o_mb-xxs" style="width: 544px;height: 0px;border: 1px solid #CBD5E1;flex: none;order: 1;flex-grow: 0;"></p>
|
|
97
|
+
</td>
|
|
98
|
+
</tr>
|
|
99
|
+
</table>
|
|
100
|
+
</td>
|
|
101
|
+
</tr>
|
|
102
|
+
<tr>
|
|
103
|
+
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
104
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
105
|
+
<tr>
|
|
106
|
+
<td class="o_bg-white o_px-md o_py-xl o_xs-py-md" style="background-color: #ffffff;padding-left: 30px;padding-right: 24px;padding-top: 10px;padding-bottom: 10px;">
|
|
107
|
+
<div class="o_col-6s o_sans o_text-md o_text-light o_center" style="margin-top: 0px;margin-bottom: 0px;font-size: 20px;line-height: 28px;color: #82899a;">
|
|
108
|
+
<span class="o_heading o_text-dark o_mb-xxs" style="font-weight: 700;margin-top: 0px;margin-bottom: 4px;color: #242b3d;line-height: 39px;"> Your account was approved!</span>
|
|
109
|
+
</div>
|
|
110
|
+
</td>
|
|
111
|
+
</tr>
|
|
112
|
+
</table>
|
|
113
|
+
</td>
|
|
114
|
+
</tr>
|
|
115
|
+
<tr>
|
|
116
|
+
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
117
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
118
|
+
<tr>
|
|
119
|
+
<td align="left" bgcolor="#ffffff" style="padding-left: 30px;padding-right: 24px; font-size: 16px;padding-top:10px; line-height: 24px;font-weight:400;color:#384860">
|
|
120
|
+
<p style="margin: 0;">As a verified user, you will be among the first to receive product updates, new feature announcements, enhanced security and personalised support.
|
|
121
|
+
<br><br>
|
|
122
|
+
Head over to the dashboard to finish your setup. </p>
|
|
123
|
+
</td>
|
|
124
|
+
</tr>
|
|
125
|
+
</table>
|
|
126
|
+
</td>
|
|
127
|
+
</tr>
|
|
128
|
+
<tr>
|
|
129
|
+
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
130
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
131
|
+
<tr>
|
|
132
|
+
<td align="left" bgcolor="#fff" style="border-radius: 6px;padding:14px 30px">
|
|
133
|
+
<a href={{url}} style="display: inline-block;padding: 10px 36px;font-size: 20px;color: #fff;text-decoration: none;border-radius: 6px;background-color: #00a3ff;"> Add Stores</a>
|
|
134
|
+
</td>
|
|
135
|
+
</tr>
|
|
136
|
+
</table>
|
|
137
|
+
</td>
|
|
138
|
+
</tr>
|
|
139
|
+
<tr>
|
|
140
|
+
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 0 10px">
|
|
141
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
142
|
+
<tr>
|
|
143
|
+
<td align="left" bgcolor="#ffffff" style="padding-left: 30px;padding-right: 24px; font-size: 16px;padding-top:10px; line-height: 24px;font-weight:400;color:#384860">
|
|
144
|
+
<p style="margin: 0;">Enjoy the full potential of Tango Traffic Module. If you have any questions or need assistance, our support team is here to help.
|
|
145
|
+
|
|
146
|
+
<br><br>
|
|
147
|
+
|
|
148
|
+
Happy exploring! </p>
|
|
149
|
+
</td>
|
|
150
|
+
</tr>
|
|
151
|
+
</table>
|
|
152
|
+
</td>
|
|
153
|
+
</tr>
|
|
154
|
+
<tr>
|
|
155
|
+
<td align="center" bgcolor="#dbe5ea" style="padding:0 10px 32px 10px">
|
|
156
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;">
|
|
157
|
+
<tr>
|
|
158
|
+
<td class="o_bg-white o_px-md o_py-xl o_xs-py-md" style="background-color: #ffffff;padding-left: 30px;padding-right: 24px;padding-bottom:15px">
|
|
159
|
+
<div class="o_col-6s o_sans o_text-md o_text-light o_center" style="margin-top: 0px;margin-bottom: 0px;font-size: 12px;color: #202B3C;font-style: normal;font-weight: 400;font-size: 12px;line-height: 150%;">
|
|
160
|
+
<br>
|
|
161
|
+
<p>If you'd rather not receive this kind of email, Don’t want any more emails from TangoEye?<u style="color:#00A3FF">Unsubscribe</u>.</p>
|
|
162
|
+
<p> © Tango Eye. All rights reserved.</p>
|
|
163
|
+
</div>
|
|
164
|
+
</td>
|
|
165
|
+
</tr>
|
|
166
|
+
</table>
|
|
167
|
+
</td>
|
|
168
|
+
</tr>
|
|
169
|
+
</table>
|
|
170
|
+
</body>
|
|
171
171
|
</html> `
|
|
@@ -3,9 +3,9 @@ import express from 'express';
|
|
|
3
3
|
import { activityLogValid, auditConfigValid, billingDetailsValid, brandInfoValid, clientCreationValid, clientDetailsValid, documentsValid, domainDetailsValid, featureConfigurationValid, getAssignedClientValid, getAuditConfigValid, postClientCamApprovalValid, signatoryDetailsValid, ticketConfigurationValid, userConfigurationValid } from '../dtos/client.dtos.js';
|
|
4
4
|
import { auditConfiguration, changeStatus, clientCsmAssignAction, clientDetails, create, csmAssignConfirmation, domainDetailsConfiguration, getActivityLogs, getAuditConfiguration, getClients, getCsmUsers, getOpsUsers, updateBillingDetails, updateBrandInfo, updateDocuments, updateFeatureConfiguration, updateSignatoryDetails, updateTicketConfiguration, userConfiguration } from '../controllers/client.controllers.js';
|
|
5
5
|
import { accessVerification, isAllowedSessionHandler, validate } from 'tango-app-api-middleware';
|
|
6
|
-
import { clientListValid, detailedClientCountValid } from '../dtos/client.dtos.js';
|
|
6
|
+
import { clientListValid, detailedClientCountValid, createAuditConfigValid, AuditConfiglistValid, revopconfigValid, revopconfiggetValid } from '../dtos/client.dtos.js';
|
|
7
7
|
import { isclientIdExists, isclientNameExists, roleVerification } from '../validations/client.validations.js';
|
|
8
|
-
import { detailedAllClientCount, detailedClientCount, clientList, clientListV1 } from '../controllers/client.controllers.js';
|
|
8
|
+
import { detailedAllClientCount, detailedClientCount, clientList, clientListV1, createAuditConfig, updateAuditConfig, AuditConfiglist, revopconfig, getrevopconfig } from '../controllers/client.controllers.js';
|
|
9
9
|
|
|
10
10
|
export const clientRouter = express.Router();
|
|
11
11
|
|
|
@@ -98,4 +98,18 @@ clientRouter.get( '/show-csm-assign-confirmation', isAllowedSessionHandler,
|
|
|
98
98
|
clientRouter.post( '/client-csm-assign-action', isAllowedSessionHandler,
|
|
99
99
|
validate( postClientCamApprovalValid ), clientCsmAssignAction );
|
|
100
100
|
|
|
101
|
+
clientRouter.post( '/createAuditConfig', isAllowedSessionHandler,
|
|
102
|
+
validate( createAuditConfigValid ), createAuditConfig );
|
|
103
|
+
|
|
104
|
+
clientRouter.put( '/updateAuditConfig/:id', isAllowedSessionHandler,
|
|
105
|
+
validate( createAuditConfigValid ), updateAuditConfig );
|
|
106
|
+
|
|
107
|
+
clientRouter.post( '/AuditConfiglist', isAllowedSessionHandler,
|
|
108
|
+
validate( AuditConfiglistValid ), AuditConfiglist );
|
|
109
|
+
|
|
110
|
+
clientRouter.post( '/revopconfig', isAllowedSessionHandler,
|
|
111
|
+
validate( revopconfigValid ), revopconfig );
|
|
112
|
+
clientRouter.get( '/revopconfig', isAllowedSessionHandler,
|
|
113
|
+
validate( revopconfiggetValid ), getrevopconfig );
|
|
114
|
+
|
|
101
115
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import auditConfigModel from 'tango-api-schema/schema/auditConfig.model.js';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export async function createauditConfig( field = {} ) {
|
|
5
|
+
return await auditConfigModel.create( field );
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export async function updateauditConfig( data={}, field = {} ) {
|
|
9
|
+
return await auditConfigModel.updateOne( data, { $set: field } );
|
|
10
|
+
};
|
|
11
|
+
export async function aggregateAuditconfig( data ) {
|
|
12
|
+
return await auditConfigModel.aggregate( data );
|
|
13
|
+
};
|
|
@@ -160,9 +160,15 @@ export function featureConfigurationUpdate( query, inputData ) {
|
|
|
160
160
|
'featureConfigs.isNOB': inputData?.isNOB,
|
|
161
161
|
'featureConfigs.isNewZoneV2': inputData?.isNewZoneV2,
|
|
162
162
|
'featureConfigs.isTrax': inputData?.isTrax,
|
|
163
|
+
'featureConfigs.isRevops': inputData?.isRevops,
|
|
163
164
|
'featureConfigs.isControlCenter': inputData?.isControlCenter,
|
|
164
165
|
'featureConfigs.isFootfallDirectoryAudit': inputData?.isFootfallDirectoryAudit,
|
|
165
166
|
'featureConfigs.isFootfallDirectoryLimit': inputData?.isFootfallDirectoryLimit,
|
|
167
|
+
'featureConfigs.streamBy': inputData?.streamBy,
|
|
168
|
+
'featureConfigs.isFootfallView': inputData?.isFootfallView,
|
|
169
|
+
'featureConfigs.isAIManager': inputData?.isAIManager,
|
|
170
|
+
'featureConfigs.isAIManagerAccessControl': inputData?.isAIManagerAccessControl,
|
|
171
|
+
'featureConfigs.isCameraEdit': inputData?.isCameraEdit,
|
|
166
172
|
},
|
|
167
173
|
} );
|
|
168
174
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import revopConfigModel from 'tango-api-schema/schema/revopConfig.model.js';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export async function createrevopConfig( field = {} ) {
|
|
5
|
+
return await revopConfigModel.create( field );
|
|
6
|
+
};
|
|
7
|
+
export async function findOnerevopConfig( query = {} ) {
|
|
8
|
+
return await revopConfigModel.findOne( query );
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export async function updaterevopConfig( data={}, field = {} ) {
|
|
12
|
+
return await revopConfigModel.updateOne( data, { $set: field } );
|
|
13
|
+
};
|
|
14
|
+
export async function aggregaterevopconfig( data ) {
|
|
15
|
+
return await revopConfigModel.aggregate( data );
|
|
16
|
+
};
|