Merged PR 250: [Sp13-1完了]Todoを一斉駆逐する
## 概要 [Task1774: [Sp13-1完了]Todoを一斉駆逐する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1774) - TODOコメントに修正予定Taskを追加 - cors関連の不要な実装を削除 ## レビューポイント - 作業方針は問題ないか - client側は軽微なTODOのみだったので今回対処しなかったが問題ないか ## 動作確認状況 - テストとビルドが通ることを確認
This commit is contained in:
parent
28a88a1b3d
commit
cfb7bdb4dc
@ -10,7 +10,11 @@ import {
|
||||
} from '../../gateways/adb2c/adb2c.service';
|
||||
import { Account } from '../../repositories/accounts/entity/account.entity';
|
||||
import { User } from '../../repositories/users/entity/user.entity';
|
||||
import { LICENSE_EXPIRATION_THRESHOLD_DAYS, TIERS, USER_ROLES } from '../../constants';
|
||||
import {
|
||||
LICENSE_EXPIRATION_THRESHOLD_DAYS,
|
||||
TIERS,
|
||||
USER_ROLES,
|
||||
} from '../../constants';
|
||||
import { makeErrorResponse } from '../../common/error/makeErrorResponse';
|
||||
import { TypistGroup } from './types/types';
|
||||
import { GetLicenseSummaryResponse, Typist } from './types/types';
|
||||
@ -313,7 +317,8 @@ export class AccountsService {
|
||||
|
||||
try {
|
||||
// アクセストークンからユーザーIDを取得する
|
||||
myAccountId = (await this.usersRepository.findUserByExternalId(userId)).account_id;
|
||||
myAccountId = (await this.usersRepository.findUserByExternalId(userId))
|
||||
.account_id;
|
||||
} catch (e) {
|
||||
this.logger.error(`error=${e}`);
|
||||
if (e instanceof UserNotFoundError) {
|
||||
@ -328,7 +333,7 @@ export class AccountsService {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const ramdomPassword = makePassword();
|
||||
|
||||
let externalUser: { sub: string } | ConflictError;
|
||||
@ -367,7 +372,7 @@ export class AccountsService {
|
||||
USER_ROLES.NONE,
|
||||
null,
|
||||
);
|
||||
|
||||
|
||||
const from = this.configService.get<string>('MAIL_FROM') || '';
|
||||
const { subject, text, html } =
|
||||
await this.sendgridService.createMailContentFromEmailConfirmForNormalUser(
|
||||
@ -375,13 +380,7 @@ export class AccountsService {
|
||||
adminUser.id,
|
||||
email,
|
||||
);
|
||||
await this.sendgridService.sendMail(
|
||||
email,
|
||||
from,
|
||||
subject,
|
||||
text,
|
||||
html,
|
||||
);
|
||||
await this.sendgridService.sendMail(email, from, subject, text, html);
|
||||
} catch (e) {
|
||||
this.logger.error(`error=${e}`);
|
||||
this.logger.error('create partner account failed');
|
||||
|
||||
@ -195,7 +195,7 @@ export class FilesService {
|
||||
accountId,
|
||||
country,
|
||||
);
|
||||
//TODO コンテナが無ければ作成しているが、アカウント登録時に作成するので本処理は削除予定。
|
||||
//TODO [Task2241] コンテナが無ければ作成しているが、アカウント登録時に作成するので本処理は削除予定。
|
||||
if (!isContainerExist) {
|
||||
await this.blobStorageService.createContainer(accountId, country);
|
||||
}
|
||||
|
||||
@ -480,7 +480,7 @@ export class TasksController {
|
||||
)
|
||||
async changeCheckoutPermission(
|
||||
@Req() req: Request,
|
||||
//TODOcheckoutやcheckinと同じパスパラメータなので記述方法を統一したい
|
||||
//TODO [Task2243] checkoutやcheckinと同じパスパラメータなので記述方法を統一したい
|
||||
@Param(`audioFileId`, ParseIntPipe)
|
||||
audioFileId: number,
|
||||
@Body() body: PostCheckoutPermissionRequest,
|
||||
|
||||
@ -39,7 +39,7 @@ export class TasksService {
|
||||
private readonly adB2cService: AdB2cService,
|
||||
) {}
|
||||
|
||||
// TODO: 引数にAccessTokenがあるのは不適切なのでController側で分解したい
|
||||
// TODO [Task2244] 引数にAccessTokenがあるのは不適切なのでController側で分解したい
|
||||
async getTasks(
|
||||
accessToken: AccessToken,
|
||||
offset: number,
|
||||
@ -49,7 +49,8 @@ export class TasksService {
|
||||
direction?: SortDirection,
|
||||
): Promise<{ tasks: Task[]; total: number }> {
|
||||
const { role, userId } = accessToken;
|
||||
const roles = role.split(' '); // TODO: Roleを型で定義されているものに修正する
|
||||
// TODO [Task2244] Roleに型で定義されている値が入っているかをチェックして異常値を弾く実装に修正する
|
||||
const roles = role.split(' ');
|
||||
|
||||
// パラメータが省略された場合のデフォルト値: 保存するソート条件の値の初期値と揃える
|
||||
const defaultParamName: TaskListSortableAttribute = 'JOB_NUMBER';
|
||||
|
||||
@ -168,7 +168,7 @@ export class UsersService {
|
||||
|
||||
//Azure AD B2Cに登録したユーザー情報のID(sub)と受け取った情報を使ってDBにユーザーを登録する
|
||||
let newUser: EntityUser;
|
||||
// TODO 本来はNULLだが、テーブル定義に誤ってNOTNULLが付いているため、一時的に適当な値を設定
|
||||
// TODO [Task2246] 本来はNULLだが、テーブル定義に誤ってNOTNULLが付いているため、一時的に適当な値を設定
|
||||
const accepted_terms_version = 'xxx';
|
||||
try {
|
||||
// ユーザ作成
|
||||
@ -260,7 +260,7 @@ export class UsersService {
|
||||
await this.usersRepository.updateUserVerified(userId);
|
||||
// メールの送信元を取得
|
||||
const from = this.configService.get<string>('MAIL_FROM') ?? '';
|
||||
// XXX ODMS側が正式にメッセージを決めるまで仮のメール内容とする
|
||||
// TODO [Task2163] ODMS側が正式にメッセージを決めるまで仮のメール内容とする
|
||||
const subject = 'A temporary password has been issued.';
|
||||
const text = 'temporary password: ' + ramdomPassword;
|
||||
const domains = this.configService.get<string>('APP_DOMAIN');
|
||||
@ -303,7 +303,7 @@ export class UsersService {
|
||||
|
||||
// 値をマージして定義されたレスポンス通りに返す
|
||||
const users: User[] = [];
|
||||
// TODO 膨大なループが発生することが見込まれ商用には耐えないので、本実装時に修正予定
|
||||
// TODO [Task2002] 膨大なループが発生することが見込まれ商用には耐えないので、本実装時に修正予定
|
||||
for (let i = 0; i < dbUsers.length; i++) {
|
||||
// Azure AD B2Cからユーザーを取得する
|
||||
const aadb2cUser = await this.adB2cService.getUser(
|
||||
@ -314,7 +314,7 @@ export class UsersService {
|
||||
user.name = aadb2cUser.displayName;
|
||||
user.role = dbUsers[i].role;
|
||||
user.authorId = dbUsers[i].author_id;
|
||||
// TODO DBから取得できるようになるため暫定
|
||||
// TODO [Task2247] 将来的にはDBから取得できるようになる想定のため暫定的にtypistGroupNameに仮の値を設定
|
||||
user.typistGroupName = '';
|
||||
user.email = aadb2cUser.mail;
|
||||
user.emailVerified = dbUsers[i].email_verified;
|
||||
|
||||
@ -194,7 +194,7 @@ export class AdB2cService {
|
||||
);
|
||||
|
||||
/*
|
||||
TODO 現状の実装だと1リクエストで最大15パラメータまでしか設定できないため、
|
||||
TODO [Task2002] 現状の実装だと1リクエストで最大15パラメータまでしか設定できないため、
|
||||
別タスクでアカウント単位の検索用パラメータを用いて取得するように修正する。
|
||||
タスク 2002: B2Cからの名前取得をより低コストで行えるように修正する
|
||||
*/
|
||||
@ -226,7 +226,8 @@ export class AdB2cService {
|
||||
}
|
||||
}
|
||||
}
|
||||
// TODO 文字列の配列を15要素ずつ区切る(この処理も別タスクで削除予定)
|
||||
|
||||
// TODO [Task2002] 文字列の配列を15要素ずつ区切る(この処理も別タスクで削除予定)
|
||||
const splitArrayInChunksOfFifteen = (arr: string[]): string[][] => {
|
||||
const result: string[][] = [];
|
||||
const chunkSize = 15; // SDKの制限数
|
||||
|
||||
@ -25,7 +25,6 @@ export class BlobstorageService {
|
||||
private readonly sharedKeyCredentialAU: StorageSharedKeyCredential;
|
||||
private readonly sharedKeyCredentialEU: StorageSharedKeyCredential;
|
||||
constructor(private readonly configService: ConfigService) {
|
||||
// TODO リソース作成後に接続情報をKeyVaultに格納し、そこから取得するように修正する
|
||||
this.sharedKeyCredentialUS = new StorageSharedKeyCredential(
|
||||
this.configService.get('STORAGE_ACCOUNT_NAME_US'),
|
||||
this.configService.get('STORAGE_ACCOUNT_KEY_US'),
|
||||
|
||||
@ -32,7 +32,7 @@ export class NotificationhubService {
|
||||
reg = createWindowsRegistrationDescription({
|
||||
channelUri: pnsHandler,
|
||||
tags: [],
|
||||
// XXX 登録の有効期限を設定したい場合
|
||||
// XXX [Task2218] 登録の有効期限を設定したい場合等、本実装を別途Taskで行う
|
||||
//expirationTime: '',
|
||||
});
|
||||
} else if (pns === 'apns') {
|
||||
|
||||
@ -53,7 +53,7 @@ export class SendGridService {
|
||||
* @param email 認証対象のユーザーのメールアドレス
|
||||
* @returns メールのサブジェクトとコンテンツ
|
||||
*/
|
||||
//TODO 中身が管理ユーザ向けのままなので、修正の必要あり
|
||||
//TODO [Task2163] 中身が管理ユーザ向けのままなので、修正の必要あり
|
||||
async createMailContentFromEmailConfirmForNormalUser(
|
||||
accountId: number,
|
||||
userId: number,
|
||||
|
||||
@ -15,12 +15,7 @@ helmetDirectives['style-src'] = ["'self'", 'https:'];
|
||||
helmetDirectives['report-uri'] = ["'self'"];
|
||||
async function bootstrap() {
|
||||
const app = await NestFactory.create(AppModule);
|
||||
//XXX 特定のオリジンからのリクエストは許可する
|
||||
app.enableCors({
|
||||
origin: 'http://localhost:8180',
|
||||
methods: 'GET,PUT,POST,DELETE,OPTION',
|
||||
allowedHeaders: 'Origin,Content-Type,Accept,Authorization',
|
||||
});
|
||||
|
||||
app.use(
|
||||
helmet({
|
||||
contentSecurityPolicy: {
|
||||
|
||||
@ -449,8 +449,8 @@ export class TasksRepositoryService {
|
||||
skip: offset,
|
||||
});
|
||||
|
||||
// TODO: Task内にCheckoutPermissionを含める方法が上手くいかなかった(複雑になりすぎた? 原因未調査)ため、
|
||||
// 確実に上手くいく方法としてQueryの分割を行ったが、本来はオブジェクトの構築はTypeORMに一任したい
|
||||
// TODO [Task2249] Task内にCheckoutPermissionを含める方法が上手くいかなかった(複雑になりすぎた? 原因未調査)ため、
|
||||
// 確実に上手くいく方法としてQueryの分割を行ったが、本来はオブジェクトの構築はTypeORMに一任したい
|
||||
const checkoutRepo = entityManager.getRepository(CheckoutPermission);
|
||||
|
||||
const taskIds = tasks.map((x) => x.id);
|
||||
@ -638,8 +638,8 @@ export class TasksRepositoryService {
|
||||
skip: offset,
|
||||
});
|
||||
|
||||
// TODO: Task内にCheckoutPermissionを含める方法が上手くいかなかった(複雑になりすぎた? 原因未調査)ため、
|
||||
// 確実に上手くいく方法としてQueryの分割を行ったが、本来はオブジェクトの構築はTypeORMに一任したい
|
||||
// TODO [Task2249] Task内にCheckoutPermissionを含める方法が上手くいかなかった(複雑になりすぎた? 原因未調査)ため、
|
||||
// 確実に上手くいく方法としてQueryの分割を行ったが、本来はオブジェクトの構築はTypeORMに一任したい
|
||||
const taskIds = tasks.map((x) => x.id);
|
||||
const permissions = await checkoutRepo.find({
|
||||
relations: {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user