Merged PR 663: develop不具合対応
## 概要 [Task3404: develop不具合対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3404) - ライセンス割り当て通知メールのTOにAdminが入るように修正しました。 - 不要なメソッド`createMailContentFromEmailConfirm`を削除しました。 ## レビューポイント - 共有 ## UIの変更 - なし ## 動作確認状況 - ローカルで確認
This commit is contained in:
parent
f2ef2228c3
commit
6f62a016d4
@ -80,12 +80,6 @@ export const overrideAdB2cService = <TService>(
|
|||||||
export const overrideSendgridService = <TService>(
|
export const overrideSendgridService = <TService>(
|
||||||
service: TService,
|
service: TService,
|
||||||
overrides: {
|
overrides: {
|
||||||
createMailContentFromEmailConfirm?: (
|
|
||||||
context: Context,
|
|
||||||
accountId: number,
|
|
||||||
userId: number,
|
|
||||||
email: string,
|
|
||||||
) => Promise<{ subject: string; text: string; html: string }>;
|
|
||||||
createMailContentFromEmailConfirmForNormalUser?: (
|
createMailContentFromEmailConfirmForNormalUser?: (
|
||||||
accountId: number,
|
accountId: number,
|
||||||
userId: number,
|
userId: number,
|
||||||
@ -119,12 +113,6 @@ export const overrideSendgridService = <TService>(
|
|||||||
writable: true,
|
writable: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (overrides.createMailContentFromEmailConfirm) {
|
|
||||||
Object.defineProperty(obj, obj.createMailContentFromEmailConfirm.name, {
|
|
||||||
value: overrides.createMailContentFromEmailConfirm,
|
|
||||||
writable: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (overrides.createMailContentFromEmailConfirmForNormalUser) {
|
if (overrides.createMailContentFromEmailConfirmForNormalUser) {
|
||||||
Object.defineProperty(
|
Object.defineProperty(
|
||||||
|
|||||||
@ -121,14 +121,7 @@ describe('createAccount', () => {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
overrideSendgridService(service, {
|
overrideSendgridService(service, {});
|
||||||
sendMail: async () => {
|
|
||||||
return;
|
|
||||||
},
|
|
||||||
createMailContentFromEmailConfirm: async () => {
|
|
||||||
return { html: '', text: '', subject: '' };
|
|
||||||
},
|
|
||||||
});
|
|
||||||
overrideBlobstorageService(service, {
|
overrideBlobstorageService(service, {
|
||||||
createContainer: async () => {
|
createContainer: async () => {
|
||||||
return;
|
return;
|
||||||
@ -183,14 +176,7 @@ describe('createAccount', () => {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
overrideSendgridService(service, {
|
overrideSendgridService(service, {});
|
||||||
sendMail: async () => {
|
|
||||||
return;
|
|
||||||
},
|
|
||||||
createMailContentFromEmailConfirm: async () => {
|
|
||||||
return { html: '', text: '', subject: '' };
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const companyName = 'test_company_name';
|
const companyName = 'test_company_name';
|
||||||
const country = 'US';
|
const country = 'US';
|
||||||
@ -254,14 +240,7 @@ describe('createAccount', () => {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
overrideSendgridService(service, {
|
overrideSendgridService(service, {});
|
||||||
sendMail: async () => {
|
|
||||||
return;
|
|
||||||
},
|
|
||||||
createMailContentFromEmailConfirm: async () => {
|
|
||||||
return { html: '', text: '', subject: '' };
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const companyName = 'test_company_name';
|
const companyName = 'test_company_name';
|
||||||
const country = 'US';
|
const country = 'US';
|
||||||
@ -632,13 +611,6 @@ describe('createAccount', () => {
|
|||||||
sendMail: async () => {
|
sendMail: async () => {
|
||||||
throw new Error();
|
throw new Error();
|
||||||
},
|
},
|
||||||
createMailContentFromEmailConfirm: async () => {
|
|
||||||
return {
|
|
||||||
html: 'dummy_html',
|
|
||||||
subject: 'dummy_subject',
|
|
||||||
text: 'dummy_text',
|
|
||||||
};
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
overrideBlobstorageService(service, {
|
overrideBlobstorageService(service, {
|
||||||
createContainer: async () => {
|
createContainer: async () => {
|
||||||
@ -721,13 +693,6 @@ describe('createAccount', () => {
|
|||||||
sendMail: async () => {
|
sendMail: async () => {
|
||||||
throw new Error();
|
throw new Error();
|
||||||
},
|
},
|
||||||
createMailContentFromEmailConfirm: async () => {
|
|
||||||
return {
|
|
||||||
html: 'dummy_html',
|
|
||||||
subject: 'dummy_subject',
|
|
||||||
text: 'dummy_text',
|
|
||||||
};
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
overrideBlobstorageService(service, {
|
overrideBlobstorageService(service, {
|
||||||
createContainer: async () => {
|
createContainer: async () => {
|
||||||
|
|||||||
@ -44,11 +44,6 @@ export type AdB2cMockValue = {
|
|||||||
getUsers: AdB2cUser[] | Error;
|
getUsers: AdB2cUser[] | Error;
|
||||||
};
|
};
|
||||||
export type SendGridMockValue = {
|
export type SendGridMockValue = {
|
||||||
createMailContentFromEmailConfirm: {
|
|
||||||
subject: string;
|
|
||||||
text: string;
|
|
||||||
html: string;
|
|
||||||
};
|
|
||||||
createMailContentFromEmailConfirmForNormalUser: {
|
createMailContentFromEmailConfirmForNormalUser: {
|
||||||
subject: string;
|
subject: string;
|
||||||
text: string;
|
text: string;
|
||||||
@ -242,20 +237,8 @@ export const makeConfigMock = (value: ConfigMockValue) => {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
export const makeSendGridServiceMock = (value: SendGridMockValue) => {
|
export const makeSendGridServiceMock = (value: SendGridMockValue) => {
|
||||||
const {
|
const { createMailContentFromEmailConfirmForNormalUser, sendMail } = value;
|
||||||
createMailContentFromEmailConfirm,
|
|
||||||
createMailContentFromEmailConfirmForNormalUser,
|
|
||||||
sendMail,
|
|
||||||
} = value;
|
|
||||||
return {
|
return {
|
||||||
createMailContentFromEmailConfirm:
|
|
||||||
createMailContentFromEmailConfirm instanceof Error
|
|
||||||
? jest
|
|
||||||
.fn<Promise<void>, []>()
|
|
||||||
.mockRejectedValue(createMailContentFromEmailConfirm)
|
|
||||||
: jest
|
|
||||||
.fn<Promise<{ subject: string; text: string; html: string }>, []>()
|
|
||||||
.mockResolvedValue(createMailContentFromEmailConfirm),
|
|
||||||
createMailContentFromEmailConfirmForNormalUser:
|
createMailContentFromEmailConfirmForNormalUser:
|
||||||
createMailContentFromEmailConfirmForNormalUser instanceof Error
|
createMailContentFromEmailConfirmForNormalUser instanceof Error
|
||||||
? jest
|
? jest
|
||||||
@ -475,7 +458,6 @@ export const makeDefaultAdB2cMockValue = (): AdB2cMockValue => {
|
|||||||
export const makeDefaultSendGridlValue = (): SendGridMockValue => {
|
export const makeDefaultSendGridlValue = (): SendGridMockValue => {
|
||||||
return {
|
return {
|
||||||
sendMail: undefined,
|
sendMail: undefined,
|
||||||
createMailContentFromEmailConfirm: { subject: '', text: '', html: '' },
|
|
||||||
createMailContentFromEmailConfirmForNormalUser: {
|
createMailContentFromEmailConfirmForNormalUser: {
|
||||||
subject: 'Verify your new account',
|
subject: 'Verify your new account',
|
||||||
text: `The verification URL.`,
|
text: `The verification URL.`,
|
||||||
|
|||||||
@ -48,11 +48,6 @@ export type AdB2cMockValue = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export type SendGridMockValue = {
|
export type SendGridMockValue = {
|
||||||
createMailContentFromEmailConfirm: {
|
|
||||||
subject: string;
|
|
||||||
text: string;
|
|
||||||
html: string;
|
|
||||||
};
|
|
||||||
createMailContentFromEmailConfirmForNormalUser:
|
createMailContentFromEmailConfirmForNormalUser:
|
||||||
| { subject: string; text: string; html: string }
|
| { subject: string; text: string; html: string }
|
||||||
| Error;
|
| Error;
|
||||||
@ -135,16 +130,8 @@ export const makeSortCriteriaRepositoryMock = (
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const makeSendGridServiceMock = (value: SendGridMockValue) => {
|
export const makeSendGridServiceMock = (value: SendGridMockValue) => {
|
||||||
const { createMailContentFromEmailConfirm, sendMail } = value;
|
const { sendMail } = value;
|
||||||
return {
|
return {
|
||||||
createMailContentFromEmailConfirm:
|
|
||||||
createMailContentFromEmailConfirm instanceof Error
|
|
||||||
? jest
|
|
||||||
.fn<Promise<void>, []>()
|
|
||||||
.mockRejectedValue(createMailContentFromEmailConfirm)
|
|
||||||
: jest
|
|
||||||
.fn<Promise<{ subject: string; text: string; html: string }>, []>()
|
|
||||||
.mockResolvedValue(createMailContentFromEmailConfirm),
|
|
||||||
sendMail:
|
sendMail:
|
||||||
sendMail instanceof Error
|
sendMail instanceof Error
|
||||||
? jest.fn<Promise<void>, []>().mockRejectedValue(sendMail)
|
? jest.fn<Promise<void>, []>().mockRejectedValue(sendMail)
|
||||||
@ -291,7 +278,6 @@ export const makeConfigMock = (value: ConfigMockValue) => {
|
|||||||
export const makeDefaultSendGridlValue = (): SendGridMockValue => {
|
export const makeDefaultSendGridlValue = (): SendGridMockValue => {
|
||||||
return {
|
return {
|
||||||
sendMail: undefined,
|
sendMail: undefined,
|
||||||
createMailContentFromEmailConfirm: { subject: '', text: '', html: '' },
|
|
||||||
createMailContentFromEmailConfirmForNormalUser: {
|
createMailContentFromEmailConfirmForNormalUser: {
|
||||||
subject: 'test',
|
subject: 'test',
|
||||||
text: 'test',
|
text: 'test',
|
||||||
|
|||||||
@ -1105,14 +1105,11 @@ export class UsersService {
|
|||||||
throw new Error(`emailAddress is null. externalId=${externalId}`);
|
throw new Error(`emailAddress is null. externalId=${externalId}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 管理者に割り当てた場合にはTOに管理者のメールアドレスを設定するので、CCには管理者のメールアドレスを設定しない
|
|
||||||
const ccAdminEmails = adminEmails.filter((x) => x !== emailAddress);
|
|
||||||
|
|
||||||
await this.sendgridService.sendMailWithU108(
|
await this.sendgridService.sendMailWithU108(
|
||||||
context,
|
context,
|
||||||
displayName,
|
displayName,
|
||||||
emailAddress,
|
emailAddress,
|
||||||
ccAdminEmails,
|
adminEmails,
|
||||||
companyName,
|
companyName,
|
||||||
dealerName,
|
dealerName,
|
||||||
);
|
);
|
||||||
|
|||||||
@ -205,66 +205,6 @@ export class SendGridService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Email認証用のメールコンテンツを作成する
|
|
||||||
* @param accountId 認証対象のユーザーが所属するアカウントのID
|
|
||||||
* @param userId 認証対象のユーザーのID
|
|
||||||
* @param email 認証対象のユーザーのメールアドレス
|
|
||||||
* @returns メールのサブジェクトとコンテンツ
|
|
||||||
*/
|
|
||||||
async createMailContentFromEmailConfirm(
|
|
||||||
context: Context,
|
|
||||||
accountId: number,
|
|
||||||
userId: number,
|
|
||||||
email: string,
|
|
||||||
): Promise<{ subject: string; text: string; html: string }> {
|
|
||||||
this.logger.log(
|
|
||||||
`[IN] [${context.getTrackingId()}] ${
|
|
||||||
this.createMailContentFromEmailConfirm.name
|
|
||||||
} | params: { ` +
|
|
||||||
`accountId: ${accountId},` +
|
|
||||||
`userId: ${userId} };`,
|
|
||||||
);
|
|
||||||
try {
|
|
||||||
const privateKey = getPrivateKey(this.configService);
|
|
||||||
const token = sign<{ accountId: number; userId: number; email: string }>(
|
|
||||||
{
|
|
||||||
accountId,
|
|
||||||
userId,
|
|
||||||
email,
|
|
||||||
},
|
|
||||||
this.emailConfirmLifetime,
|
|
||||||
privateKey,
|
|
||||||
);
|
|
||||||
const path = 'mail-confirm/';
|
|
||||||
|
|
||||||
const html = this.templateEmailVerifyHtml
|
|
||||||
.replace('VERIFY_LINK', `${this.appDomain}${path}?verify=${token}`)
|
|
||||||
.replace(
|
|
||||||
'VERIFY_LINK_TEXT',
|
|
||||||
`${this.appDomain}${path}?verify=${token}`,
|
|
||||||
);
|
|
||||||
const text = this.templateEmailVerifyText
|
|
||||||
.replace('VERIFY_LINK', `${this.appDomain}${path}?verify=${token}`)
|
|
||||||
.replace(
|
|
||||||
'VERIFY_LINK_TEXT',
|
|
||||||
`${this.appDomain}${path}?verify=${token}`,
|
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
|
||||||
subject: 'Verify your new account',
|
|
||||||
text: text,
|
|
||||||
html: html,
|
|
||||||
};
|
|
||||||
} finally {
|
|
||||||
this.logger.log(
|
|
||||||
`[OUT] [${context.getTrackingId()}] ${
|
|
||||||
this.createMailContentFromEmailConfirm.name
|
|
||||||
}`,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Email認証用のメールコンテンツを作成する(一般ユーザ向け)
|
* Email認証用のメールコンテンツを作成する(一般ユーザ向け)
|
||||||
* @param accountId 認証対象のユーザーが所属するアカウントのID
|
* @param accountId 認証対象のユーザーが所属するアカウントのID
|
||||||
@ -655,11 +595,13 @@ export class SendGridService {
|
|||||||
.replaceAll(USER_EMAIL, userMail)
|
.replaceAll(USER_EMAIL, userMail)
|
||||||
.replaceAll(TOP_URL, this.appDomain);
|
.replaceAll(TOP_URL, this.appDomain);
|
||||||
|
|
||||||
|
const ccAddress = customerAdminMails.includes(userMail) ? [] : [userMail];
|
||||||
|
|
||||||
// メールを送信する
|
// メールを送信する
|
||||||
this.sendMail(
|
this.sendMail(
|
||||||
context,
|
context,
|
||||||
[userMail],
|
|
||||||
customerAdminMails,
|
customerAdminMails,
|
||||||
|
ccAddress,
|
||||||
this.mailFrom,
|
this.mailFrom,
|
||||||
subject,
|
subject,
|
||||||
text,
|
text,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user