summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/i/update_email.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-02-24 17:57:49 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-02-24 17:57:49 +0900
commitf4ae9391248d9ba366210be215681537ce9ecb49 (patch)
tree28de199e28cf57ea5254da4c1f300e16b3996a5f /src/server/api/endpoints/i/update_email.ts
parentRefactor (diff)
downloadmisskey-f4ae9391248d9ba366210be215681537ce9ecb49.tar.gz
misskey-f4ae9391248d9ba366210be215681537ce9ecb49.tar.bz2
misskey-f4ae9391248d9ba366210be215681537ce9ecb49.zip
ハイフンに統一
Diffstat (limited to 'src/server/api/endpoints/i/update_email.ts')
-rw-r--r--src/server/api/endpoints/i/update_email.ts100
1 files changed, 0 insertions, 100 deletions
diff --git a/src/server/api/endpoints/i/update_email.ts b/src/server/api/endpoints/i/update_email.ts
deleted file mode 100644
index c90462d850..0000000000
--- a/src/server/api/endpoints/i/update_email.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-import $ from 'cafy';
-import User, { pack } from '../../../../models/user';
-import { publishMainStream } from '../../../../services/stream';
-import define from '../../define';
-import * as nodemailer from 'nodemailer';
-import fetchMeta from '../../../../misc/fetch-meta';
-import rndstr from 'rndstr';
-import config from '../../../../config';
-import * as ms from 'ms';
-import * as bcrypt from 'bcryptjs';
-import { apiLogger } from '../../logger';
-
-export const meta = {
- requireCredential: true,
-
- secure: true,
-
- limit: {
- duration: ms('1hour'),
- max: 3
- },
-
- params: {
- password: {
- validator: $.str
- },
-
- email: {
- validator: $.optional.nullable.str
- },
- }
-};
-
-export default define(meta, async (ps, user) => {
- // Compare password
- const same = await bcrypt.compare(ps.password, user.password);
-
- if (!same) {
- throw new Error('incorrect password');
- }
-
- await User.update(user._id, {
- $set: {
- email: ps.email,
- emailVerified: false,
- emailVerifyCode: null
- }
- });
-
- const iObj = await pack(user._id, user, {
- detail: true,
- includeSecrets: true
- });
-
- // Publish meUpdated event
- publishMainStream(user._id, 'meUpdated', iObj);
-
- if (ps.email != null) {
- const code = rndstr('a-z0-9', 16);
-
- await User.update(user._id, {
- $set: {
- emailVerifyCode: code
- }
- });
-
- const meta = await fetchMeta();
-
- const enableAuth = meta.smtpUser != null && meta.smtpUser !== '';
-
- const transporter = nodemailer.createTransport({
- host: meta.smtpHost,
- port: meta.smtpPort,
- secure: meta.smtpSecure,
- ignoreTLS: !enableAuth,
- auth: enableAuth ? {
- user: meta.smtpUser,
- pass: meta.smtpPass
- } : undefined
- });
-
- const link = `${config.url}/verify-email/${code}`;
-
- transporter.sendMail({
- from: meta.email,
- to: ps.email,
- subject: meta.name,
- text: `To verify email, please click this link: ${link}`
- }, (error, info) => {
- if (error) {
- apiLogger.error(error);
- return;
- }
-
- apiLogger.info('Message sent: %s', info.messageId);
- });
- }
-
- return iObj;
-});