@resolveio/server-lib 20.7.133 → 20.8.1

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/http/auth.js CHANGED
@@ -52,7 +52,7 @@ function setupAuthRoutes(mainServer, app, serverConfig) {
52
52
  return __generator(this, function (_a) {
53
53
  switch (_a.label) {
54
54
  case 0:
55
- if (!(request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'])) return [3 /*break*/, 1];
55
+ if (!!(0, common_1.isAllowedOrigin)(request.headers.origin, serverConfig)) return [3 /*break*/, 1];
56
56
  response.send(JSON.stringify({
57
57
  error: true,
58
58
  result: 'Invalid header'
@@ -179,7 +179,7 @@ function setupAuthRoutes(mainServer, app, serverConfig) {
179
179
  return __generator(this, function (_a) {
180
180
  switch (_a.label) {
181
181
  case 0:
182
- if (!(request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'])) return [3 /*break*/, 1];
182
+ if (!!(0, common_1.isAllowedOrigin)(request.headers.origin, serverConfig)) return [3 /*break*/, 1];
183
183
  response.send(JSON.stringify({
184
184
  error: true,
185
185
  result: 'Invalid header'
@@ -317,7 +317,7 @@ function setupAuthRoutes(mainServer, app, serverConfig) {
317
317
  return __generator(this, function (_a) {
318
318
  switch (_a.label) {
319
319
  case 0:
320
- if (!(request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL'])) return [3 /*break*/, 1];
320
+ if (!!(0, common_1.isAllowedOrigin)(request.headers.origin, serverConfig)) return [3 /*break*/, 1];
321
321
  response.send(JSON.stringify({
322
322
  error: true,
323
323
  result: 'Invalid header'
@@ -413,7 +413,7 @@ function setupAuthRoutes(mainServer, app, serverConfig) {
413
413
  return __generator(this, function (_a) {
414
414
  switch (_a.label) {
415
415
  case 0:
416
- if (!(request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL'])) return [3 /*break*/, 1];
416
+ if (!!(0, common_1.isAllowedOrigin)(request.headers.origin, serverConfig)) return [3 /*break*/, 1];
417
417
  response.send(JSON.stringify({
418
418
  error: true,
419
419
  result: 'Invalid header'
@@ -511,7 +511,7 @@ function setupAuthRoutes(mainServer, app, serverConfig) {
511
511
  return __generator(this, function (_a) {
512
512
  switch (_a.label) {
513
513
  case 0:
514
- if (!(request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL'])) return [3 /*break*/, 1];
514
+ if (!!(0, common_1.isAllowedOrigin)(request.headers.origin, serverConfig)) return [3 /*break*/, 1];
515
515
  response.send(JSON.stringify({
516
516
  error: true,
517
517
  result: 'Invalid header'
@@ -613,7 +613,7 @@ function setupAuthRoutes(mainServer, app, serverConfig) {
613
613
  return __generator(this, function (_a) {
614
614
  switch (_a.label) {
615
615
  case 0:
616
- if (!(request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL'])) return [3 /*break*/, 1];
616
+ if (!!(0, common_1.isAllowedOrigin)(request.headers.origin, serverConfig)) return [3 /*break*/, 1];
617
617
  response.send(JSON.stringify({
618
618
  error: true,
619
619
  result: 'Invalid header'
@@ -711,7 +711,7 @@ function setupAuthRoutes(mainServer, app, serverConfig) {
711
711
  return __generator(this, function (_a) {
712
712
  switch (_a.label) {
713
713
  case 0:
714
- if (!(request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL'])) return [3 /*break*/, 1];
714
+ if (!!(0, common_1.isAllowedOrigin)(request.headers.origin, serverConfig)) return [3 /*break*/, 1];
715
715
  response.send(JSON.stringify({
716
716
  error: true,
717
717
  result: 'Invalid header'
@@ -812,7 +812,7 @@ function setupAuthRoutes(mainServer, app, serverConfig) {
812
812
  return __generator(this, function (_a) {
813
813
  switch (_a.label) {
814
814
  case 0:
815
- if (!(request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'])) return [3 /*break*/, 1];
815
+ if (!!(0, common_1.isAllowedOrigin)(request.headers.origin, serverConfig)) return [3 /*break*/, 1];
816
816
  response.send(JSON.stringify({
817
817
  error: true,
818
818
  result: 'Invalid header'
package/http/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/http/auth.ts"],"names":[],"mappings":"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","file":"auth.js","sourcesContent":["import * as bodyParser from 'body-parser';\nimport * as handlebars from 'handlebars';\nimport * as jwt from 'jsonwebtoken';\nimport jwt_decode from 'jwt-decode';\nimport SimpleSchema from 'simpl-schema';\nimport { Users } from '../collections/user.collection';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { ResolveIOMainServer } from '../server-app';\nimport { objectIdHexString } from '../util/common';\n\nexport function setupAuthRoutes(mainServer: ResolveIOMainServer, app, serverConfig) {\n\tapp.post('/login365', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tid_token: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/login)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/login365' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet tokenData = body.id_token.split('&');\n\t\t\tlet token = tokenData[0].split('=')[1];\n\t\t\tlet decodedJWT = jwt_decode(token);\n\n\t\t\tif (decodedJWT && decodedJWT['name'] && decodedJWT['preferred_username'] && decodedJWT['oid']) {\n\t\t\t\tlet user = await Users.findOne({'other.ms_oid': decodedJWT['oid']});\n\n\t\t\t\tif (!user) {\n\t\t\t\t\tuser = await Users.findOne({email: decodedJWT['preferred_username'].toLowerCase()});\n\n\t\t\t\t\tif (user) {\n\t\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {'other.ms_oid': decodedJWT['oid']}});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!user) {\n\t\t\t\t\tuser = {\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\troles: {\n\t\t\t\t\t\t\tsuper_admin: false,\n\t\t\t\t\t\t\tapprovals: [],\n\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\tnotifications: [],\n\t\t\t\t\t\t\tmiscs: []\n\t\t\t\t\t\t},\n\t\t\t\t\t\tusername: decodedJWT['preferred_username'].toLowerCase(),\n\t\t\t\t\t\temail: decodedJWT['preferred_username'].toLowerCase(),\n\t\t\t\t\t\tfullname: decodedJWT['name'],\n\t\t\t\t\t\tactive: true,\n\t\t\t\t\t\tphonenumber: '',\n\t\t\t\t\t\treadonly: false,\n\t\t\t\t\t\tother: {\n\t\t\t\t\t\t\tms_oid: decodedJWT['oid']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tattempts: 0,\n\t\t\t\t\t\tsalt: jwt.sign({now: (Date.now() - 1000).toString()}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t}),\n\t\t\t\t\t\thash: jwt.sign({now: (Date.now() + 1000).toString()}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tlast: new Date(),\n\t\t\t\t\t\tsettings: null,\n\t\t\t\t\t\tservices: null,\n\t\t\t\t\t\tis_customer: false\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tawait Users.create(user);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet update = false;\n\n\t\t\t\t\tif (user.email !== decodedJWT['preferred_username'].toLowerCase()) {\n\t\t\t\t\t\tuser.email = decodedJWT['preferred_username'].toLowerCase();\n\t\t\t\t\t\tupdate = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (user.fullname !== decodedJWT['name']) {\n\t\t\t\t\t\tuser.fullname = decodedJWT['name'];\n\t\t\t\t\t\tupdate = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (update) {\n\t\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {email: user.email, fullname: user.fullname}});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\terror: false,\n\t\t\t\t\tresult: {\n\t\t\t\t\t\ttoken: jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconsole.log('ERROR - 1', tokenData, token, decodedJWT);\n\n\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\terror: true,\n\t\t\t\t\tresult: 'Invalid Azure Token'\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t});\n\n\t// Login via HTTP, return refresh token if authenticated\n\tapp.post('/login', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tusername: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/login)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/login' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet user = await Users.findOne({active: true, username: body.username});\n\n\t\t\tif (!user) {\n\t\t\t\tuser = await Users.findOne({active: true, email: body.username});\n\t\t\t}\n\t\t\t\n\t\t\tif (!user) {\n\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\terror: true,\n\t\t\t\t\tresult: 'Invalid Username And Password'\n\t\t\t\t}));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet resAuth = await Users.authenticate(user, body.password);\n\n\t\t\tif (resAuth['error']) {\n\t\t\t\tif (resAuth['error'] === 'Too Many Attempts') {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: resAuth['error'] + '. A password reset link has been sent to your email, please reset your password.'\n\t\t\t\t\t}));\n\n\t\t\t\t\tif (!user.services) {\n\t\t\t\t\t\tuser.services = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tuser.services['forgot_password'] = jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET']);\n\n\t\t\t\t\tlet emailData = {\n\t\t\t\t\t\tuserToChangePassword: user.fullname,\n\t\t\t\t\t\tuserWhoResetPassword: ResolveIOServer.getClientName() + ' System',\n\t\t\t\t\t\turl: (serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(serverConfig['SERVER_URL']) + '&' + user.services['forgot_password'])\n\t\t\t\t\t};\n\n\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {services: user.services}});\n\t\t\t\t\tlet html = mainServer.getMethodManager().readFile('email-templates/forgot-password.html');\n\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t});\n\t\n\t\t\t\t\tawait mainServer.getMethodManager().sendEmail(user.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData), null, null, '');\n\t\t\t\t}\n\t\t\t\telse if (resAuth['error'] === 'No Salt Value Stored') {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'A password reset link has been sent to your email, please reset your password.'\n\t\t\t\t\t}));\n\n\t\t\t\t\tif (!user.services) {\n\t\t\t\t\t\tuser.services = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tuser.services['forgot_password'] = jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET']);\n\n\t\t\t\t\tlet emailData = {\n\t\t\t\t\t\tuserToChangePassword: user.fullname,\n\t\t\t\t\t\tuserWhoResetPassword: ResolveIOServer.getClientName() + ' System',\n\t\t\t\t\t\turl: (serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(serverConfig['SERVER_URL']) + '&' + user.services['forgot_password'])\n\t\t\t\t\t};\n\n\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {services: user.services}});\n\t\t\t\t\tlet html = mainServer.getMethodManager().readFile('email-templates/forgot-password.html');\n\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t});\n\n\t\t\t\t\tawait mainServer.getMethodManager().sendEmail(user.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData), null, null, '');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: resAuth['error']\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (resAuth && resAuth['data'] && resAuth['data'].active) {\n\t\t\t\t\tawait Users.resetAttempts(resAuth['data']);\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: false,\n\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\ttoken: jwt.sign({id_user: resAuth['data']._id}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} \n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tapp.post('/accessToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\trefreshToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/accessToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/accessToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.refreshToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findById(decoded['id_user']);\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\t\t\t\ttoken: jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\t\t\t\t\texpiresIn : 3 * 24 * 60 * 60 * 1000 // 3 days\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\tuser: user\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/userWithEnrollmentToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tenrollmentToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/userWithEnrollmentToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/userWithEnrollmentToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.enrollmentToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.enrollment': body.enrollmentToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}, {projection: {_id: 1, __v: 1, username: 1, active: 1}});\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\t\t\t\tuser: user\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/setUserWithEnrollmentToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tenrollmentToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/setUserWithEnrollmentToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/setUserWithEnrollmentToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.enrollmentToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.enrollment': body.enrollmentToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tawait Users.setPassword(user, body.password);\n\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: true\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/userWithForgotPasswordToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tforgotPasswordToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/userWithForgotPasswordToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/userWithForgotPasswordToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.forgotPasswordToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.forgot_password': body.forgotPasswordToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}, {projection: {_id: 1, __v: 1, username: 1, active: 1}});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\t\t\t\tuser: user\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/setUserWithForgotPasswordToken', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tforgotPasswordToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/setUserWithForgotPasswordToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/setUserWithForgotPasswordToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.forgotPasswordToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.forgot_password': body.forgotPasswordToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tawait Users.setPassword(user, body.password);\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: true\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/resetPassword', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tusername: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/resetPassword)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/resetPassword' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet user = await Users.findOne({active: true, username: body.username});\n\n\t\t\tif (!user) {\n\t\t\t\tuser = await Users.findOne({active: true, email: body.username});\n\t\t\t}\n\t\t\t\n\t\t\tif (user) {\n\t\t\t\tmainServer.getMethodManager().callMethod.call(mainServer.getMethodManager(), 'resetUserPassword', user._id);\n\t\t\t}\n\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: false,\n\t\t\t\tresult: ''\n\t\t\t}));\n\t\t}\n\t});\n}"]}
1
+ {"version":3,"sources":["../../src/http/auth.ts"],"names":[],"mappings":"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","file":"auth.js","sourcesContent":["import * as bodyParser from 'body-parser';\nimport * as handlebars from 'handlebars';\nimport * as jwt from 'jsonwebtoken';\nimport jwt_decode from 'jwt-decode';\nimport SimpleSchema from 'simpl-schema';\nimport { Users } from '../collections/user.collection';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { ResolveIOMainServer } from '../server-app';\nimport { isAllowedOrigin, objectIdHexString } from '../util/common';\n\nexport function setupAuthRoutes(mainServer: ResolveIOMainServer, app, serverConfig) {\n\tapp.post('/login365', bodyParser.json(), async (request, response) => {\n\t\tif (!isAllowedOrigin(request.headers.origin, serverConfig)) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tid_token: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/login)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/login365' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet tokenData = body.id_token.split('&');\n\t\t\tlet token = tokenData[0].split('=')[1];\n\t\t\tlet decodedJWT = jwt_decode(token);\n\n\t\t\tif (decodedJWT && decodedJWT['name'] && decodedJWT['preferred_username'] && decodedJWT['oid']) {\n\t\t\t\tlet user = await Users.findOne({'other.ms_oid': decodedJWT['oid']});\n\n\t\t\t\tif (!user) {\n\t\t\t\t\tuser = await Users.findOne({email: decodedJWT['preferred_username'].toLowerCase()});\n\n\t\t\t\t\tif (user) {\n\t\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {'other.ms_oid': decodedJWT['oid']}});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!user) {\n\t\t\t\t\tuser = {\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\t__v: 0,\n\t\t\t\t\t\troles: {\n\t\t\t\t\t\t\tsuper_admin: false,\n\t\t\t\t\t\t\tapprovals: [],\n\t\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\t\tnotifications: [],\n\t\t\t\t\t\t\tmiscs: []\n\t\t\t\t\t\t},\n\t\t\t\t\t\tusername: decodedJWT['preferred_username'].toLowerCase(),\n\t\t\t\t\t\temail: decodedJWT['preferred_username'].toLowerCase(),\n\t\t\t\t\t\tfullname: decodedJWT['name'],\n\t\t\t\t\t\tactive: true,\n\t\t\t\t\t\tphonenumber: '',\n\t\t\t\t\t\treadonly: false,\n\t\t\t\t\t\tother: {\n\t\t\t\t\t\t\tms_oid: decodedJWT['oid']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tattempts: 0,\n\t\t\t\t\t\tsalt: jwt.sign({now: (Date.now() - 1000).toString()}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t}),\n\t\t\t\t\t\thash: jwt.sign({now: (Date.now() + 1000).toString()}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tlast: new Date(),\n\t\t\t\t\t\tsettings: null,\n\t\t\t\t\t\tservices: null,\n\t\t\t\t\t\tis_customer: false\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tawait Users.create(user);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet update = false;\n\n\t\t\t\t\tif (user.email !== decodedJWT['preferred_username'].toLowerCase()) {\n\t\t\t\t\t\tuser.email = decodedJWT['preferred_username'].toLowerCase();\n\t\t\t\t\t\tupdate = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (user.fullname !== decodedJWT['name']) {\n\t\t\t\t\t\tuser.fullname = decodedJWT['name'];\n\t\t\t\t\t\tupdate = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (update) {\n\t\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {email: user.email, fullname: user.fullname}});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\terror: false,\n\t\t\t\t\tresult: {\n\t\t\t\t\t\ttoken: jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconsole.log('ERROR - 1', tokenData, token, decodedJWT);\n\n\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\terror: true,\n\t\t\t\t\tresult: 'Invalid Azure Token'\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t});\n\n\t// Login via HTTP, return refresh token if authenticated\n\tapp.post('/login', bodyParser.json(), async (request, response) => {\n\t\tif (!isAllowedOrigin(request.headers.origin, serverConfig)) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tusername: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/login)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/login' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet user = await Users.findOne({active: true, username: body.username});\n\n\t\t\tif (!user) {\n\t\t\t\tuser = await Users.findOne({active: true, email: body.username});\n\t\t\t}\n\t\t\t\n\t\t\tif (!user) {\n\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\terror: true,\n\t\t\t\t\tresult: 'Invalid Username And Password'\n\t\t\t\t}));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet resAuth = await Users.authenticate(user, body.password);\n\n\t\t\tif (resAuth['error']) {\n\t\t\t\tif (resAuth['error'] === 'Too Many Attempts') {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: resAuth['error'] + '. A password reset link has been sent to your email, please reset your password.'\n\t\t\t\t\t}));\n\n\t\t\t\t\tif (!user.services) {\n\t\t\t\t\t\tuser.services = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tuser.services['forgot_password'] = jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET']);\n\n\t\t\t\t\tlet emailData = {\n\t\t\t\t\t\tuserToChangePassword: user.fullname,\n\t\t\t\t\t\tuserWhoResetPassword: ResolveIOServer.getClientName() + ' System',\n\t\t\t\t\t\turl: (serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(serverConfig['SERVER_URL']) + '&' + user.services['forgot_password'])\n\t\t\t\t\t};\n\n\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {services: user.services}});\n\t\t\t\t\tlet html = mainServer.getMethodManager().readFile('email-templates/forgot-password.html');\n\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t});\n\t\n\t\t\t\t\tawait mainServer.getMethodManager().sendEmail(user.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData), null, null, '');\n\t\t\t\t}\n\t\t\t\telse if (resAuth['error'] === 'No Salt Value Stored') {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'A password reset link has been sent to your email, please reset your password.'\n\t\t\t\t\t}));\n\n\t\t\t\t\tif (!user.services) {\n\t\t\t\t\t\tuser.services = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tuser.services['forgot_password'] = jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET']);\n\n\t\t\t\t\tlet emailData = {\n\t\t\t\t\t\tuserToChangePassword: user.fullname,\n\t\t\t\t\t\tuserWhoResetPassword: ResolveIOServer.getClientName() + ' System',\n\t\t\t\t\t\turl: (serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(serverConfig['SERVER_URL']) + '&' + user.services['forgot_password'])\n\t\t\t\t\t};\n\n\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {services: user.services}});\n\t\t\t\t\tlet html = mainServer.getMethodManager().readFile('email-templates/forgot-password.html');\n\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t});\n\n\t\t\t\t\tawait mainServer.getMethodManager().sendEmail(user.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData), null, null, '');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: resAuth['error']\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (resAuth && resAuth['data'] && resAuth['data'].active) {\n\t\t\t\t\tawait Users.resetAttempts(resAuth['data']);\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: false,\n\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\ttoken: jwt.sign({id_user: resAuth['data']._id}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\t\texpiresIn : 90 * 24 * 60 * 60 * 1000 // 90 days\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} \n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tapp.post('/accessToken', bodyParser.json(), async (request, response) => {\n\t\tif (!isAllowedOrigin(request.headers.origin, serverConfig)) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\trefreshToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/accessToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/accessToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.refreshToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findById(decoded['id_user']);\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\t\t\t\ttoken: jwt.sign({id_user: user._id}, serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\t\t\t\t\t\texpiresIn : 3 * 24 * 60 * 60 * 1000 // 3 days\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\tuser: user\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/userWithEnrollmentToken', bodyParser.json(), async (request, response) => {\n\t\tif (!isAllowedOrigin(request.headers.origin, serverConfig)) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tenrollmentToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/userWithEnrollmentToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/userWithEnrollmentToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.enrollmentToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.enrollment': body.enrollmentToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}, {projection: {_id: 1, __v: 1, username: 1, active: 1}});\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\t\t\t\tuser: user\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/setUserWithEnrollmentToken', bodyParser.json(), async (request, response) => {\n\t\tif (!isAllowedOrigin(request.headers.origin, serverConfig)) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tenrollmentToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/setUserWithEnrollmentToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/setUserWithEnrollmentToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.enrollmentToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.enrollment': body.enrollmentToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tawait Users.setPassword(user, body.password);\n\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: true\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/userWithForgotPasswordToken', bodyParser.json(), async (request, response) => {\n\t\tif (!isAllowedOrigin(request.headers.origin, serverConfig)) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tforgotPasswordToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/userWithForgotPasswordToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/userWithForgotPasswordToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.forgotPasswordToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.forgot_password': body.forgotPasswordToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}, {projection: {_id: 1, __v: 1, username: 1, active: 1}});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\t\t\t\tuser: user\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/setUserWithForgotPasswordToken', bodyParser.json(), async (request, response) => {\n\t\tif (!isAllowedOrigin(request.headers.origin, serverConfig)) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tforgotPasswordToken: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/setUserWithForgotPasswordToken)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/setUserWithForgotPasswordToken' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tjwt.verify(body.forgotPasswordToken, serverConfig['JWT_SECRET'], async (err, decoded) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Token'\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet user = await Users.findOne({\n\t\t\t\t\t\t\t$and: [\n\t\t\t\t\t\t\t\t{_id: decoded['id_user']},\n\t\t\t\t\t\t\t\t{'services.forgot_password': body.forgotPasswordToken}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif (user) {\n\t\t\t\t\t\t\tif (user.active) {\n\t\t\t\t\t\t\t\tawait Users.setPassword(user, body.password);\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t\t\t\tresult: true\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t\tresult: 'Account is Disabled'\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\tresult: 'Invalid User'\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch {\n\t\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\tresult: 'Invalid Mongo Get User'\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\n\tapp.post('/resetPassword', bodyParser.json(), async (request, response) => {\n\t\tif (!isAllowedOrigin(request.headers.origin, serverConfig)) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tusername: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/resetPassword)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/resetPassword' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet user = await Users.findOne({active: true, username: body.username});\n\n\t\t\tif (!user) {\n\t\t\t\tuser = await Users.findOne({active: true, email: body.username});\n\t\t\t}\n\t\t\t\n\t\t\tif (user) {\n\t\t\t\tmainServer.getMethodManager().callMethod.call(mainServer.getMethodManager(), 'resetUserPassword', user._id);\n\t\t\t}\n\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: false,\n\t\t\t\tresult: ''\n\t\t\t}));\n\t\t}\n\t});\n}\n"]}
package/http/home.js CHANGED
@@ -40,6 +40,7 @@ exports.setupHomeRoutes = void 0;
40
40
  var bodyParser = require("body-parser");
41
41
  var simpl_schema_1 = require("simpl-schema");
42
42
  var resolveio_server_app_1 = require("../resolveio-server-app");
43
+ var common_1 = require("../util/common");
43
44
  function setupHomeRoutes(mainServer, app, serverConfig) {
44
45
  var _this = this;
45
46
  app.post('/resolveioContactUs', bodyParser.json(), function (request, response) { return __awaiter(_this, void 0, void 0, function () {
@@ -47,7 +48,7 @@ function setupHomeRoutes(mainServer, app, serverConfig) {
47
48
  return __generator(this, function (_a) {
48
49
  switch (_a.label) {
49
50
  case 0:
50
- if (!(request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'])) return [3 /*break*/, 1];
51
+ if (!!(0, common_1.isAllowedOrigin)(request.headers.origin, serverConfig)) return [3 /*break*/, 1];
51
52
  response.send(JSON.stringify({
52
53
  error: true,
53
54
  result: 'Invalid header'
package/http/home.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/http/home.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAA0C;AAC1C,6CAAwC;AACxC,gEAA0D;AAE1D,SAAgB,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,YAAY;IAA7D,iBAiEC;IAhEA,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,UAAO,OAAO,EAAE,QAAQ;;;;;yBACtE,CAAA,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,cAAc,CAAC,CAAA,EAA9G,wBAA8G;oBACjH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBAC5B,KAAK,EAAE,IAAI;wBACX,MAAM,EAAE,gBAAgB;qBACxB,CAAC,CAAC,CAAC;;;oBAGA,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBAEpB,MAAM,GAAG,IAAI,sBAAY,CAAC;wBAC7B,IAAI,EAAE;4BACL,IAAI,EAAE,MAAM;yBACZ;wBACD,WAAW,EAAE;4BACZ,IAAI,EAAE,MAAM;yBACZ;wBACD,YAAY,EAAE;4BACb,IAAI,EAAE,MAAM;yBACZ;wBACD,YAAY,EAAE;4BACb,IAAI,EAAE,MAAM;yBACZ;wBACD,cAAc,EAAE;4BACf,IAAI,EAAE,MAAM;yBACZ;wBACD,cAAc,EAAE;4BACf,IAAI,EAAE,MAAM;yBACZ;qBACD,CAAC,CAAC;;;;oBAGF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;yBAGlB,QAAM,EAAN,wBAAM;oBACT,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,2CAA2C,EAAE,QAAM,CAAC,CAAC;oBAE/E,qBAAM,sCAAe,CAAC,aAAa,EAAE,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,sCAAe,CAAC,aAAa,EAAE,GAAG,uBAAuB,EAAE,sBAAsB,GAAG,qBAAqB,GAAG,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,QAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAA;;oBAAlT,SAAkT,CAAC;oBAEnT,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBAC5B,KAAK,EAAE,IAAI;wBACX,MAAM,EAAE,oBAAoB;qBAC5B,CAAC,CAAC,CAAC;oBAEJ,sBAAO;;;oBAII,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;oBAE7B,UAAU,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,sBAAsB,EAAE,wBAAwB,EAAE,EAAE,EAC5F,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM;wBAC7B,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM;wBAC/B,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM;wBAC/B,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM;wBACnC,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;oBAErC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBACrC,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE,IAAI;qBACZ,CAAC,CAAC,CAAC;;;;;SAEL,CAAC,CAAC;AACJ,CAAC;AAjED,0CAiEC","file":"home.js","sourcesContent":["import * as bodyParser from 'body-parser';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '../resolveio-server-app';\n\nexport function setupHomeRoutes(mainServer, app, serverConfig) {\n\tapp.post('/resolveioContactUs', bodyParser.json(), async (request, response) => {\n\t\tif (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL']) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tform: {\n\t\t\t\t\ttype: Object\n\t\t\t\t},\n\t\t\t\t'form.name': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\t'form.email': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\t'form.phone': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\t'form.subject': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\t'form.message': {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/resolveioContactUs)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/resolveioContactUs' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n let form = request.body.form;\n \n mainServer.getMethodManager().sendEmail('dustin@resolveio.com', 'ResolveIO - Contact Us', '', \n 'Name: ' + form.name + '<br>' + \n 'Email: ' + form.email + '<br>' + \n 'Phone: ' + form.phone + '<br>' + \n 'Subject: ' + form.subject + '<br>' + \n 'Message: ' + form.message + '<br>');\n\n response.send(JSON.stringify({\n\t\t\t\terror: false,\n\t\t\t\tresult: null\n\t\t\t}));\n\t\t}\n\t});\n}"]}
1
+ {"version":3,"sources":["../../src/http/home.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAA0C;AAC1C,6CAAwC;AACxC,gEAA0D;AAC1D,yCAAiD;AAEjD,SAAgB,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,YAAY;IAA7D,iBAiEC;IAhEA,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,UAAO,OAAO,EAAE,QAAQ;;;;;yBACtE,CAAC,IAAA,wBAAe,EAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,EAAtD,wBAAsD;oBACzD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBAC5B,KAAK,EAAE,IAAI;wBACX,MAAM,EAAE,gBAAgB;qBACxB,CAAC,CAAC,CAAC;;;oBAGA,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBAEpB,MAAM,GAAG,IAAI,sBAAY,CAAC;wBAC7B,IAAI,EAAE;4BACL,IAAI,EAAE,MAAM;yBACZ;wBACD,WAAW,EAAE;4BACZ,IAAI,EAAE,MAAM;yBACZ;wBACD,YAAY,EAAE;4BACb,IAAI,EAAE,MAAM;yBACZ;wBACD,YAAY,EAAE;4BACb,IAAI,EAAE,MAAM;yBACZ;wBACD,cAAc,EAAE;4BACf,IAAI,EAAE,MAAM;yBACZ;wBACD,cAAc,EAAE;4BACf,IAAI,EAAE,MAAM;yBACZ;qBACD,CAAC,CAAC;;;;oBAGF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;yBAGlB,QAAM,EAAN,wBAAM;oBACT,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,2CAA2C,EAAE,QAAM,CAAC,CAAC;oBAE/E,qBAAM,sCAAe,CAAC,aAAa,EAAE,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,sCAAe,CAAC,aAAa,EAAE,GAAG,uBAAuB,EAAE,sBAAsB,GAAG,qBAAqB,GAAG,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,QAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAA;;oBAAlT,SAAkT,CAAC;oBAEnT,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBAC5B,KAAK,EAAE,IAAI;wBACX,MAAM,EAAE,oBAAoB;qBAC5B,CAAC,CAAC,CAAC;oBAEJ,sBAAO;;;oBAII,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;oBAE7B,UAAU,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,sBAAsB,EAAE,wBAAwB,EAAE,EAAE,EAC5F,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM;wBAC7B,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM;wBAC/B,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM;wBAC/B,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM;wBACnC,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;oBAErC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBACrC,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE,IAAI;qBACZ,CAAC,CAAC,CAAC;;;;;SAEL,CAAC,CAAC;AACJ,CAAC;AAjED,0CAiEC","file":"home.js","sourcesContent":["import * as bodyParser from 'body-parser';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { isAllowedOrigin } from '../util/common';\n\nexport function setupHomeRoutes(mainServer, app, serverConfig) {\n\tapp.post('/resolveioContactUs', bodyParser.json(), async (request, response) => {\n\t\tif (!isAllowedOrigin(request.headers.origin, serverConfig)) {\n\t\t\tresponse.send(JSON.stringify({\n\t\t\t\terror: true,\n\t\t\t\tresult: 'Invalid header'\n\t\t\t}));\n\t\t}\n\t\telse {\n\t\t\tlet body = request.body;\n\n\t\t\tlet schema = new SimpleSchema({\n\t\t\t\tform: {\n\t\t\t\t\ttype: Object\n\t\t\t\t},\n\t\t\t\t'form.name': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\t'form.email': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\t'form.phone': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\t'form.subject': {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\t'form.message': {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\ttry {\n\t\t\t\tschema.validate(body);\n\t\t\t}\n\t\t\tcatch (errors) {\n\t\t\t\tif (errors) {\n\t\t\t\t\tconsole.error(new Date(), 'Error in HTTP Check (/resolveioContactUs)', errors);\n\t\n\t\t\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/resolveioContactUs' + '\\n\\nData Being Checked\\n' + JSON.stringify(body, null, 2) + '\\n\\nErrors\\n' + JSON.stringify(errors, null, 2));\n\t\n\t\t\t\t\tresponse.send(JSON.stringify({\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t\tresult: 'Invalid Parameters'\n\t\t\t\t\t}));\n\t\t\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n let form = request.body.form;\n \n mainServer.getMethodManager().sendEmail('dustin@resolveio.com', 'ResolveIO - Contact Us', '', \n 'Name: ' + form.name + '<br>' + \n 'Email: ' + form.email + '<br>' + \n 'Phone: ' + form.phone + '<br>' + \n 'Subject: ' + form.subject + '<br>' + \n 'Message: ' + form.message + '<br>');\n\n response.send(JSON.stringify({\n\t\t\t\terror: false,\n\t\t\t\tresult: null\n\t\t\t}));\n\t\t}\n\t});\n}\n"]}
@@ -37,7 +37,7 @@ export declare class MethodManager {
37
37
  methods(method: MethodModel): void;
38
38
  callMethodCron(method: string, ...methodData: any[]): Promise<any>;
39
39
  callMethod(methodName: string, ...methodData: any[]): Promise<any>;
40
- setupEmailWatcher(): Promise<void>;
40
+ setupEmailWatcher(): void;
41
41
  loadPendingEmails(): Promise<void>;
42
42
  tryProcessEmail(): Promise<void>;
43
43
  safeStringify(obj: any): string;
@@ -233,6 +233,9 @@ var MethodManager = /** @class */ (function () {
233
233
  else {
234
234
  this._enableDebug = false;
235
235
  }
236
+ return [4 /*yield*/, this.loadPendingEmails()];
237
+ case 3:
238
+ _a.sent();
236
239
  return [2 /*return*/];
237
240
  }
238
241
  });
@@ -285,16 +288,7 @@ var MethodManager = /** @class */ (function () {
285
288
  });
286
289
  }); }, 60000);
287
290
  if (!this._isWorkersEnabled || this._isWorkerInstance) {
288
- setImmediate(function () { return __awaiter(_this, void 0, void 0, function () {
289
- return __generator(this, function (_a) {
290
- switch (_a.label) {
291
- case 0: return [4 /*yield*/, this.setupEmailWatcher()];
292
- case 1:
293
- _a.sent();
294
- return [2 /*return*/];
295
- }
296
- });
297
- }); });
291
+ this.setupEmailWatcher();
298
292
  }
299
293
  };
300
294
  MethodManager.prototype.getMethod = function (methodName) {
@@ -561,64 +555,45 @@ var MethodManager = /** @class */ (function () {
561
555
  });
562
556
  };
563
557
  MethodManager.prototype.setupEmailWatcher = function () {
564
- return __awaiter(this, void 0, void 0, function () {
565
- var changeStream;
566
- var _this = this;
558
+ var _this = this;
559
+ var changeStream = email_history_collection_1.EmailHistories.watchCollection([]);
560
+ changeStream.on('change', function (change) { return __awaiter(_this, void 0, void 0, function () {
561
+ var updatedEmail;
567
562
  return __generator(this, function (_a) {
568
563
  switch (_a.label) {
569
564
  case 0:
570
- changeStream = email_history_collection_1.EmailHistories.watchCollection([]);
571
- changeStream.on('change', function (change) { return __awaiter(_this, void 0, void 0, function () {
572
- var updatedEmail;
573
- return __generator(this, function (_a) {
574
- switch (_a.label) {
575
- case 0:
576
- if (!(change.operationType === 'insert' && change.fullDocument && change.fullDocument.status === 'pending')) return [3 /*break*/, 2];
577
- this.emailQueue.add(change.fullDocument._id.toString());
578
- return [4 /*yield*/, this.tryProcessEmail()];
579
- case 1:
580
- _a.sent();
581
- return [3 /*break*/, 3];
582
- case 2:
583
- if (change.operationType === 'update' || change.operationType === 'replace') {
584
- updatedEmail = change.fullDocument;
585
- if (updatedEmail && updatedEmail.status !== 'pending' && this.emailQueue.has(updatedEmail._id.toString())) {
586
- this.emailQueue.delete(updatedEmail._id.toString());
587
- }
588
- }
589
- _a.label = 3;
590
- case 3: return [2 /*return*/];
591
- }
592
- });
593
- }); })
594
- .on('error', function (err) { return __awaiter(_this, void 0, void 0, function () {
595
- return __generator(this, function (_a) {
596
- switch (_a.label) {
597
- case 0:
598
- console.error('Email history changestream error', err);
599
- return [4 /*yield*/, changeStream.close()];
600
- case 1:
601
- _a.sent();
602
- return [2 /*return*/];
603
- }
604
- });
605
- }); })
606
- .on('close', function () { return __awaiter(_this, void 0, void 0, function () {
607
- return __generator(this, function (_a) {
608
- switch (_a.label) {
609
- case 0: return [4 /*yield*/, this.setupEmailWatcher()];
610
- case 1:
611
- _a.sent();
612
- return [2 /*return*/];
613
- }
614
- });
615
- }); });
616
- return [4 /*yield*/, this.loadPendingEmails()];
565
+ if (!(change.operationType === 'insert' && change.fullDocument && change.fullDocument.status === 'pending')) return [3 /*break*/, 2];
566
+ this.emailQueue.add(change.fullDocument._id.toString());
567
+ return [4 /*yield*/, this.tryProcessEmail()];
568
+ case 1:
569
+ _a.sent();
570
+ return [3 /*break*/, 3];
571
+ case 2:
572
+ if (change.operationType === 'update' || change.operationType === 'replace') {
573
+ updatedEmail = change.fullDocument;
574
+ if (updatedEmail && updatedEmail.status !== 'pending' && this.emailQueue.has(updatedEmail._id.toString())) {
575
+ this.emailQueue.delete(updatedEmail._id.toString());
576
+ }
577
+ }
578
+ _a.label = 3;
579
+ case 3: return [2 /*return*/];
580
+ }
581
+ });
582
+ }); })
583
+ .on('error', function (err) { return __awaiter(_this, void 0, void 0, function () {
584
+ return __generator(this, function (_a) {
585
+ switch (_a.label) {
586
+ case 0:
587
+ console.error('Email history changestream error', err);
588
+ return [4 /*yield*/, changeStream.close()];
617
589
  case 1:
618
590
  _a.sent();
619
591
  return [2 /*return*/];
620
592
  }
621
593
  });
594
+ }); })
595
+ .on('close', function () {
596
+ _this.setupEmailWatcher();
622
597
  });
623
598
  };
624
599
  MethodManager.prototype.loadPendingEmails = function () {