fix refs
Seva Luchianov
4 years ago
0 | 0 | const utils = require('../../../utils'); |
1 | 1 | const time = require('../../../utils/time'); |
2 | const snippets = require('../../../utils/snippets'); | |
2 | 3 | const mailgun = require('../../../utils/mailgun'); |
3 | 4 | const broadcast = require('../../../websocket/broadcast'); |
4 | 5 | const cookies = require('../../../utils/cookies'); |
82 | 83 | } |
83 | 84 | return utils.tiny_id(); |
84 | 85 | }).then(function(delete_id) { |
85 | return generate_token_and_send_email(res, | |
86 | return snippets.generate_token_and_send_email(res, | |
86 | 87 | "delete_account", "delete_id", |
87 | 88 | req.user.email, "send_account_delete_code_email", { |
88 | 89 | email_params: { |
0 | 0 | const utils = require('../../../utils'); |
1 | const snippets = require('../../../utils/snippets'); | |
1 | 2 | const bcrypt = require('bcrypt'); |
2 | 3 | |
3 | 4 | module.exports = { |
46 | 47 | email: email |
47 | 48 | })); |
48 | 49 | |
49 | return generate_token_and_send_email(res, | |
50 | return snippets.generate_token_and_send_email(res, | |
50 | 51 | "password_reset", "reset_id", |
51 | 52 | email, "send_password_changed_email" |
52 | 53 | ); |
79 | 80 | message: "You should already have a valid password reset link, please check your inbox" |
80 | 81 | }]); |
81 | 82 | } |
82 | return generate_token_and_send_email(res, | |
83 | return snippets.generate_token_and_send_email(res, | |
83 | 84 | "password_reset", "reset_id", |
84 | 85 | req.body.email, "send_password_reset_email" |
85 | 86 | ); |
0 | 0 | const utils = require('../../../utils'); |
1 | const snippets = require('../../../utils/snippets'); | |
1 | 2 | const bcrypt = require('bcrypt'); |
2 | 3 | |
3 | 4 | module.exports = { |
47 | 48 | })); |
48 | 49 | |
49 | 50 | if (result.changedRows) { |
50 | return generate_token_and_send_email(res, | |
51 | return snippets.generate_token_and_send_email(res, | |
51 | 52 | "password_reset", "reset_id", |
52 | 53 | req.body.email, "send_password_changed_email" |
53 | 54 | ); |
0 | 0 | const utils = require('../../utils'); |
1 | 1 | const time = require('../../utils/time'); |
2 | const snippets = require('../../utils/snippets'); | |
2 | 3 | const mailgun = require('../../utils/mailgun'); |
3 | 4 | const bcrypt = require('bcrypt'); |
4 | 5 | const query_string = require('query-string'); |
146 | 147 | if (confirmation.expires > Date.now()) { |
147 | 148 | return utils.reject("There is already a valid confirmation link, please check your inbox"); |
148 | 149 | } |
149 | return utils.generate_token( | |
150 | return snippets.generate_token( | |
150 | 151 | "email_confirmations", |
151 | 152 | "confirmation_id", |
152 | 153 | confirmation.email |
215 | 215 | }, |
216 | 216 | resolve: data => new Promise(r => r(data)), |
217 | 217 | reject: error => new Promise((_, r) => r(error)), |
218 | generate_token: function(table, key, email, overrides) { | |
219 | overrides = overrides || {}; | |
220 | let token = overrides.token || uuid(); | |
221 | // So there either is no token at all, or there is one but it has expired | |
222 | return query( | |
223 | `INSERT INTO ${table} (${key}, email, expires) ` + | |
224 | `VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE ${key}=VALUES(${key}), expires=VALUES(expires)`, | |
225 | [token, email, Date.now() + (overrides.ttl || time.one_day)] | |
226 | ).then(() => token); | |
227 | }, | |
228 | 218 | setIntervalAndTriggerImmediate: function(callback, interval) { |
229 | 219 | setTimeout(callback); |
230 | 220 | return setInterval(callback, interval); |
0 | const utils = require('.'); | |
1 | const mailgun = require('./mailgun'); | |
2 | const query_string = require('query-string'); | |
3 | ||
4 | function generate_token(table, key, email, overrides) { | |
5 | overrides = overrides || {}; | |
6 | let token = overrides.token || uuid(); | |
7 | // So there either is no token at all, or there is one but it has expired | |
8 | return utils.query( | |
9 | `INSERT INTO ${table} (${key}, email, expires) ` + | |
10 | `VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE ${key}=VALUES(${key}), expires=VALUES(expires)`, | |
11 | [token, email, Date.now() + (overrides.ttl || time.one_day)] | |
12 | ).then(() => token); | |
13 | } | |
14 | ||
15 | module.exports = { | |
16 | generate_token, | |
17 | generate_token_and_send_email: function(res, table, token_id, email, send_command, overrides) { | |
18 | overrides = overrides || {}; | |
19 | return generate_token( | |
20 | table, token_id, email, overrides | |
21 | ).catch(utils.handle_err.sql(res)).then(function(token) { | |
22 | return mailgun[send_command](email, overrides.email_params || { | |
23 | query: query_string.stringify({ | |
24 | token: token | |
25 | }) | |
26 | }).catch(utils.handle_err.mailgun(res)).catch(function(error) { | |
27 | // If the confirmation email fails to send, we need to delete the row | |
28 | // from the email_confirmations table so that it can be sent again. | |
29 | return utils.query(`DELETE FROM ${table} WHERE ?`, { | |
30 | [token_id]: token | |
31 | }).catch(utils.handle_err.sql(res, true)).finally(function() { | |
32 | return utils.reject(error); | |
33 | }); | |
34 | }); | |
35 | }); | |
36 | } | |
37 | }⏎ |
41 | 41 | const query_string = require('query-string'); |
42 | 42 | const time = require('./utils/time'); |
43 | 43 | const mailgun = require('./utils/mailgun'); |
44 | const snippets = require('./utils/snippets'); | |
44 | 45 | const cookies = require('./utils/cookies'); |
45 | 46 | const broadcast = require('./websocket/broadcast'); |
46 | 47 | const ws_utils = require('./websocket/utils'); |
98 | 99 | // token generated (registered through CLI) |
99 | 100 | // OR they haven't confirmed their email yet |
100 | 101 | // and their token has expired. |
101 | return utils.generate_token( | |
102 | return snippets.generate_token( | |
102 | 103 | "email_confirmations", |
103 | 104 | "confirmation_id", |
104 | 105 |