## 概要 [Task3571: データ登録ツール作成+動作確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3571) - 移行データの登録ツールを作成しました - 入力用jsonファイルの読み込み - アカウント・ユーザの登録 - 既存サービスを移植・微修正し呼び出し - rate_limit用のsleep実施 - ワークタイプ・ライセンス・カードライセンスの登録 - 実行についてはpostmanでの実行を考えており、clientは作成しておりません ## レビューポイント - 既存サービスからの流用が多いですが、メインの処理はfeatures/registerになるため、こちらをメインに見ていただければと思います。 ## UIの変更 - 無し ## 動作確認状況 - ローカルで動作確認 ## 補足 - 相談、参考資料などがあれば
72 lines
3.2 KiB
TypeScript
72 lines
3.2 KiB
TypeScript
import { MiddlewareConsumer, Module } from "@nestjs/common";
|
|
import { ServeStaticModule } from "@nestjs/serve-static";
|
|
import { ConfigModule, ConfigService } from "@nestjs/config";
|
|
import { TypeOrmModule } from "@nestjs/typeorm";
|
|
import { join } from "path";
|
|
import { LoggerMiddleware } from "./common/loggerMiddleware";
|
|
import { AdB2cModule } from "./gateways/adb2c/adb2c.module";
|
|
import { BlobstorageModule } from "./gateways/blobstorage/blobstorage.module";
|
|
import { RegisterController } from "./features/register/register.controller";
|
|
import { RegisterService } from "./features/register/register.service";
|
|
import { RegisterModule } from "./features/register/register.module";
|
|
import { AccountsRepositoryModule } from "./repositories/accounts/accounts.repository.module";
|
|
import { UsersRepositoryModule } from "./repositories/users/users.repository.module";
|
|
import { SortCriteriaRepositoryModule } from "./repositories/sort_criteria/sort_criteria.repository.module";
|
|
import { LicensesRepositoryModule } from "./repositories/licenses/licenses.repository.module";
|
|
import { WorktypesRepositoryModule } from "./repositories/worktypes/worktypes.repository.module";
|
|
import { AccountsController } from "./features/accounts/accounts.controller";
|
|
import { AccountsService } from "./features/accounts/accounts.service";
|
|
import { AccountsModule } from "./features/accounts/accounts.module";
|
|
import { UsersController } from "./features/users/users.controller";
|
|
import { UsersService } from "./features/users/users.service";
|
|
import { UsersModule } from "./features/users/users.module";
|
|
import { DeleteModule } from "./features/delete/delete.module";
|
|
import { DeleteRepositoryModule } from "./repositories/delete/delete.repository.module";
|
|
import { DeleteController } from "./features/delete/delete.controller";
|
|
import { DeleteService } from "./features/delete/delete.service";
|
|
|
|
@Module({
|
|
imports: [
|
|
ServeStaticModule.forRoot({
|
|
rootPath: join(__dirname, ".", "build"),
|
|
}),
|
|
ConfigModule.forRoot({
|
|
envFilePath: [".env.local", ".env"],
|
|
isGlobal: true,
|
|
}),
|
|
AdB2cModule,
|
|
AccountsModule,
|
|
UsersModule,
|
|
RegisterModule,
|
|
AccountsRepositoryModule,
|
|
UsersRepositoryModule,
|
|
SortCriteriaRepositoryModule,
|
|
LicensesRepositoryModule,
|
|
WorktypesRepositoryModule,
|
|
BlobstorageModule,
|
|
DeleteModule,
|
|
DeleteRepositoryModule,
|
|
TypeOrmModule.forRootAsync({
|
|
imports: [ConfigModule],
|
|
useFactory: async (configService: ConfigService) => ({
|
|
type: "mysql",
|
|
host: configService.get("DB_HOST"),
|
|
port: configService.get("DB_PORT"),
|
|
username: configService.get("DB_USERNAME"),
|
|
password: configService.get("DB_PASSWORD"),
|
|
database: configService.get("DB_NAME"),
|
|
autoLoadEntities: true, // forFeature()で登録されたEntityを自動的にロード
|
|
synchronize: false, // trueにすると自動的にmigrationが行われるため注意
|
|
}),
|
|
inject: [ConfigService],
|
|
}),
|
|
],
|
|
controllers: [RegisterController, AccountsController, UsersController, DeleteController],
|
|
providers: [RegisterService, AccountsService, UsersService, DeleteService],
|
|
})
|
|
export class AppModule {
|
|
configure(consumer: MiddlewareConsumer) {
|
|
consumer.apply(LoggerMiddleware).forRoutes("");
|
|
}
|
|
}
|