From ba81bc5cb8ce2077eb7efc3c3c13f9ca7041eacb Mon Sep 17 00:00:00 2001 From: "saito.k" Date: Wed, 16 Aug 2023 08:45:41 +0000 Subject: [PATCH] =?UTF-8?q?Merged=20PR=20328:=20API=E5=AE=9F=E8=A3=85?= =?UTF-8?q?=EF=BC=88DB=E3=81=8B=E3=82=89=E3=82=A2=E3=82=AB=E3=82=A6?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=83=BB=E7=AE=A1=E7=90=86=E8=80=85=E3=83=A6?= =?UTF-8?q?=E3=83=BC=E3=82=B6=E3=83=BC=E3=82=92=E5=89=8A=E9=99=A4=E3=81=99?= =?UTF-8?q?=E3=82=8B=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 概要 [Task2394: API実装(DBからアカウント・管理者ユーザーを削除する)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2394) - アカウント削除と紐づくユーザーを削除する処理を実装 ## レビューポイント - アカウントに紐づくユーザーを全削除しているが問題ないか - ユーザーIDとかを指定できた方が良い? - このタスクで漏れている作業はあるか ## UIの変更 - Before/Afterのスクショなど - スクショ置き場 ## 動作確認状況 - ローカルで確認 ## 補足 - 相談、参考資料などがあれば --- .../accounts/accounts.repository.service.ts | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/dictation_server/src/repositories/accounts/accounts.repository.service.ts b/dictation_server/src/repositories/accounts/accounts.repository.service.ts index 631556e..16b6f47 100644 --- a/dictation_server/src/repositories/accounts/accounts.repository.service.ts +++ b/dictation_server/src/repositories/accounts/accounts.repository.service.ts @@ -79,7 +79,7 @@ export class AccountsRepositoryService { } /** - * プライマリ管理者とアカウントを同時に作成する + * プライマリ管理者とアカウント、ソート条件を同時に作成する * @param companyName * @param country * @param dealerAccountId @@ -150,6 +150,27 @@ export class AccountsRepositoryService { }); } + /** + * プライマリ管理者とアカウント、ソート条件を同時に削除する + * @param accountId + * @returns delete + */ + async deleteAccount(accountId: number, userId: number): Promise { + await this.dataSource.transaction(async (entityManager) => { + const accountsRepo = entityManager.getRepository(Account); + const usersRepo = entityManager.getRepository(User); + const sortCriteriaRepo = entityManager.getRepository(SortCriteria); + // アカウントを削除 + await accountsRepo.delete({ id: accountId }); + // プライマリ管理者を削除 + await usersRepo.delete({ id: userId }); + // ソート条件を削除 + await sortCriteriaRepo.delete({ + user_id: userId, + }); + }); + } + /** * アカウントIDからアカウント情報を取得する * @param id