import { HttpException, HttpStatus, Injectable, Logger } from "@nestjs/common"; import { Context } from "../../common/log"; import { LicensesInputFile, WorktypesInputFile, CardLicensesInputFile, } from "../../common/types/types"; import { LicensesRepositoryService } from "../../repositories/licenses/licenses.repository.service"; import { WorktypesRepositoryService } from "../../repositories/worktypes/worktypes.repository.service"; import { makeErrorResponse } from "../../common/error/makeErrorResponse"; @Injectable() export class RegisterService { constructor( private readonly licensesRepository: LicensesRepositoryService, private readonly worktypesRepository: WorktypesRepositoryService ) {} private readonly logger = new Logger(RegisterService.name); /** * Regist Data * @param inputFilePath: string */ async registLicenseAndWorktypeData( context: Context, licensesInputFiles: LicensesInputFile[], worktypesInputFiles: WorktypesInputFile[], cardlicensesInputFiles: CardLicensesInputFile[] ): Promise { // パラメータ内容が長大なのでログには出さない this.logger.log( `[IN] [${context.getTrackingId()}] ${ this.registLicenseAndWorktypeData.name }` ); try { this.logger.log("Licenses register start"); await this.licensesRepository.insertLicenses(context, licensesInputFiles); this.logger.log("Licenses register end"); this.logger.log("Worktypes register start"); await this.worktypesRepository.createWorktype( context, worktypesInputFiles ); this.logger.log("Worktypes register end"); this.logger.log("CardLicenses register start"); await this.licensesRepository.insertCardLicenses( context, cardlicensesInputFiles ); this.logger.log("CardLicenses register end"); } catch (e) { this.logger.error(`[${context.getTrackingId()}] error=${e}`); throw new HttpException( makeErrorResponse("E009999"), HttpStatus.INTERNAL_SERVER_ERROR ); } finally { this.logger.log( `[OUT] [${context.getTrackingId()}] ${ this.registLicenseAndWorktypeData.name }` ); } } }