tango-app-api-client 3.0.16-dev → 3.0.18-dev

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-client",
3
- "version": "3.0.16-dev",
3
+ "version": "3.0.18-dev",
4
4
  "description": "client",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -25,7 +25,7 @@
25
25
  "mongodb": "^6.3.0",
26
26
  "nodemon": "^3.0.3",
27
27
  "swagger-ui-express": "^5.0.0",
28
- "tango-api-schema": "^2.0.64",
28
+ "tango-api-schema": "^2.0.65",
29
29
  "tango-app-api-middleware": "^1.0.49-dev",
30
30
  "winston": "^3.11.0",
31
31
  "winston-daily-rotate-file": "^5.0.0"
@@ -1,13 +1,16 @@
1
1
  import { billingDetailsUpdate, brandInfoUpdate, domainDetailsConfigurationUpdate, featureConfigurationUpdate, getClientData, signatoryDetailsUpdate, ticketConfigurationUpdate, documentsUpdate, getUserData, auditConfigurationUpdate, auditConfigurationGet, CsmUsersGet, OpsUsersGet, userConfigurationUpdate, findClient, aggregateClient, createAuditQueue, findOne, getClientCount, insert, update, findOneClient } from '../service/client.service.js';
2
- import { checkFileExist, fileUpload, signedUrl, chunkArray, download, logger, getOpenSearchData, insertOpenSearchData, appConfig } from 'tango-app-api-middleware';
2
+ import { checkFileExist, fileUpload, signedUrl, chunkArray, download, logger, getOpenSearchData, insertOpenSearchData, appConfig, sendEmailWithSES } from 'tango-app-api-middleware';
3
3
  import { countDocumentsUser, findOneAndUpdateUser, findOneUser, getUserNameEmailById } from '../service/user.service.js';
4
- import { aggregateStore } from '../service/store.service.js';
4
+ import { aggregateStore, countDocumentsStore } from '../service/store.service.js';
5
5
  import { aggregateCamera, countDocumentsCamera } from '../service/camera.service.js';
6
6
  import _ from 'lodash';
7
7
  import { findOneStandaredRole } from '../service/standaredRole.service.js';
8
8
  import { aggregateUserAssignedStore } from '../service/userAssignedStore.service.js';
9
9
  import { aggregateTickets } from '../service/tangoticket.service.js';
10
10
  import { deleteOneAuthentication } from '../service/authentication.service.js';
11
+ import { join } from 'path';
12
+ import { readFileSync } from 'fs';
13
+ import handlebars from 'handlebars';
11
14
 
12
15
  export async function create( req, res ) {
13
16
  try {
@@ -25,7 +28,13 @@ export async function create( req, res ) {
25
28
  if ( !user ) {
26
29
  return res.sendError( { error: 'User doesnot exist' }, 500 );
27
30
  }
28
- logger.info( { message: user, function: 'findOneUser' } );
31
+ const data = {
32
+ email: leadRecord?.corporateEmail,
33
+ path: '/src/hbs/approved-client.hbs',
34
+ subject: 'Your account has been verified by Tango!',
35
+ };
36
+ const mail = await sendEmail( data );
37
+ logger.info( { message: mail, function: 'findOneUser' } );
29
38
  const record = {
30
39
  'clientName': leadRecord.clientName,
31
40
  'clientId': String( tangoId ),
@@ -62,6 +71,19 @@ export async function create( req, res ) {
62
71
  }
63
72
  }
64
73
 
74
+ export const sendEmail = ( data ) => {
75
+ try {
76
+ const attachments = null;
77
+ const subject = data.subject;
78
+ const fileContent = readFileSync( join() + data.path, 'utf8' );
79
+ const htmlContent = handlebars.compile( fileContent );
80
+ const html = htmlContent();
81
+ return sendEmailWithSES( data.email, subject, html, attachments, appConfig.cloud.aws.ses.adminEmail );
82
+ } catch ( error ) {
83
+ return error;
84
+ }
85
+ };
86
+
65
87
  export async function changeStatus( req, res, next ) {
66
88
  try {
67
89
  const inputData = req.body;
@@ -0,0 +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="https://devtangoretail-api.tangoeye.ai/logo.png" 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
+ </html> `