91 Commits

Author SHA1 Message Date
makabe.t
ef17e4ff0b Merged PR 167: タイピストユーザー取得API実装
## 概要
[Task1931: タイピストユーザー取得API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1931)

- アカウント内のタイピストユーザーを取得する処理を実装しました。

## レビューポイント
- ADB2Cからのユーザー取得、マージは適切か

## UIの変更
なし

## 動作確認状況
- ローカルで確認
2023-06-20 06:16:19 +00:00
maruyama.t
22bd761d10 Merged PR 161: DBマイグレーション
## 概要
[Task1990: DBマイグレーション](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1990)

- 何をどう変更したか、追加したライブラリなど
以下を追加
カードライセンステーブル
カードライセンス発行テーブル

- 影響範囲(他の機能にも影響があるか)
新規追加テーブルのため、なし

## レビューポイント
- 各カラムの物理名が妥当であるか
- NOT NULL制約は正しいか
## UIの変更
テーブルの新規追加のため、なし

## 動作確認状況
- ローカルで確認
server側のターミナルで「sql-migrate up -config=db/dbconfig.yml -env=local」を実行
→DBへ反映されていることを確認。
「sql-migrate down -config=db/dbconfig.yml -env=local」を実行
→1世代巻き戻ることを確認。

## 補足
- インプットと資料としてラフスケッチをご参照ください
2023-06-19 04:10:32 +00:00
maruyama.t
f0e0d5e6b1 Merged PR 162: API IF修正(LicenseSummaryInfo)
## 概要
[Task1961: API IF修正(LicenseSummaryInfo)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1961)

- 何をどう変更したか、追加したライブラリなど
API実装時に一時的にLicenseSummaryInfo2と命名していた定義を、LicenseSummaryInfoに修正。
それに伴い、既存のLicenseSummaryInfoはレスポンスに直接記載するよう修正。
openapi.jsonを再生成し、画面側のパラメータの取得の記載を修正。

- このPull Requestでの対象/対象外
storageSizeとusedSizeの取得はPBI対象外
- 影響範囲(他の機能にも影響があるか)
なし

## レビューポイント
- クライアント側に対する修正漏れがないか。

## UIの変更
なし

## 動作確認状況
- ローカルでAPIの戻り値の確認と、画面にその値が表示されていることを確認。
![image.png](https://dev.azure.com/ODMSCloud/6023ff7b-d41c-4fa7-9c6f-f576ba48c07c/_apis/git/repositories/302da463-a2d7-40f9-b2bb-6e8edf324fa9/pullRequests/162/attachments/image.png)
![image (2).png](https://dev.azure.com/ODMSCloud/6023ff7b-d41c-4fa7-9c6f-f576ba48c07c/_apis/git/repositories/302da463-a2d7-40f9-b2bb-6e8edf324fa9/pullRequests/162/attachments/image%20%282%29.png)
## 補足
- 相談、参考資料などがあれば
2023-06-19 04:06:44 +00:00
saito.k
d75c003b09 Merged PR 145: typist名をAzure AD B2Cから取得し表示できるようにする
## 概要
[Task1950: typist名をAzure AD B2Cから取得し表示できるようにする](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1950)

- チェックアウト権限にあるTypistのユーザー名をB2Cから取得する
  - チェックアウト権限に含まれているuser.externalIdを列挙
  - ExternalIdでフィルターをかけてユーザー情報を取得
  - B2Cへのリクエスト上限超過時のエラーを制御するために専用エラーを定義
- import文が常に絶対パスで指定されていて、それでテストがこけるので相対パスでインポートするようにvscodeを設定

## レビューポイント
- convert.tsの修正は問題ないか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 取得方法についてはMSに問い合わせ中
2023-06-19 00:48:32 +00:00
湯本 開
bb926f9feb Merged PR 164: ユニットテスト実装(タスク一覧取得 | typist)
## 概要
[Task1965: ユニットテスト実装(タスク一覧取得 | typist)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1965)

- Typistによるタスク一覧取得のユニットテスト部分を実装

## レビューポイント
- 現状、ユニットテストとして問題ないか
- レビュー対象外の部分は対象外で問題ないか

## レビュー対象外
- ライセンス周辺のテストが失敗している

## 動作確認状況
- ローカルで確認
2023-06-16 12:08:05 +00:00
maruyama.t
fd69541e1a Merged PR 142: API実装(第五階層用ライセンス情報取得API)
## 概要
[Task1846: API実装(第五階層用ライセンス情報取得API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1846)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
accounts.controller.tsからaccountService.getLicenseSummaryを呼び出す。
一度のトランザクションで処理を行うよう、serviceとrepositoryをリファクタリング。
license.entity.tsにはライセンス系のテーブルで不足していたエンティティを追加。

- このPull Requestでの対象/対象外
Storage Sizeの値はPBI1203では対象外のため0固定
Used Sizeの値はPBI1203では対象外のため0固定
LicenseSummaryInfo2と定義している個所は、別タスクで修正します。
[タスク 1961: API IF修正(LicenseSummaryInfo)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_sprints/taskboard/OMDSDictation%20%E3%83%81%E3%83%BC%E3%83%A0/OMDSDictation/%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%2011-1?workitem=1961)

- 影響範囲(他の機能にも影響があるか)
新規追加のため、なし

## レビューポイント
- 特にレビューしてほしい箇所

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
PostmanでAPI実行。
各ライセンス数値が期待通りの結果であることを確認。
![image.png](https://dev.azure.com/ODMSCloud/6023ff7b-d41c-4fa7-9c6f-f576ba48c07c/_apis/git/repositories/302da463-a2d7-40f9-b2bb-6e8edf324fa9/pullRequests/142/attachments/image.png)

## 補足
テスト内容は、添付のテストデータを参照ください。
[テストデータ.xlsx](https://dev.azure.com/ODMSCloud/6023ff7b-d41c-4fa7-9c6f-f576ba48c07c/_apis/git/repositories/302da463-a2d7-40f9-b2bb-6e8edf324fa9/pullRequests/142/attachments/%E3%83%86%E3%82%B9%E3%83%88%E3%83%87%E3%83%BC%E3%82%BF.xlsx)
2023-06-15 08:56:03 +00:00
湯本 開
2cdcae4924 Merged PR 152: API実装(タスク一覧取得 | typist)
## 概要
[Task1865: API実装(タスク一覧取得 | typist)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1865)

- Typist用のRepository呼び出しを追加

## レビュー対象外
- テスト実装(別Taskで対応予定)

## レビューポイント
- SQLの呼び出し回数が増え気味だが問題なさそうか
- Task一覧の取得条件は間違っていなさそうであるか

## 動作確認状況
- ローカルで確認(ユーザーグループ等は各1件程度のデータで確認)
2023-06-15 06:42:57 +00:00
Kentaro Fukunaga
4065268820 Merged PR 159: Task一覧取得の、文字起こし担当者の型を修正する
## 概要
[Task1987: Task一覧取得の、文字起こし担当者の型を修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1987)

- 型の修正および、既存コードでAssigeeを使うべきでないところをTypistを使うように修正しました

## レビューポイント
- 対応抜け漏れ無いか

## UIの変更
- なし

## 動作確認状況
- ローカルでビルド通ることを確認
- ローカルで既存テストに影響ないことを確認
2023-06-14 09:50:58 +00:00
makabe.t
418d568af2 Merged PR 153: Task一覧APIのResponseで省略可能でないといけないプロパティが必須になっている箇所を修正する
## 概要
[Task1956: Task一覧APIのResponseで省略可能でないといけないプロパティが必須になっている箇所を修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1956)
[Task1918: タスク一覧、タスク追加APIのコメント修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_workitems/edit/1918)

- Transcription開始日時と終了日時がNULLでも問題ないようにプロパティの型を修正しました。
- タスク一覧の音声ファイル録音時間のコメントも併せて修正しています。

## レビューポイント
- 修正内容は適切か

## UIの変更
- なし
## 動作確認状況
- ローカルで確認
2023-06-14 08:42:48 +00:00
Kentaro Fukunaga
42bc458632 Merged PR 155: API IF実装
## 概要
[Task1930: API IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1930)

- Typist一覧取得API、TypistGroup一覧取得API、チェックアウト候補変更APIの3本のAPIIFを実装しました。
- 既存のTask系APIで使用していた Typist クラスの名前をAssigneeに変更しました
- npm run formatでフォーマットした内容も含まれています。

## レビューポイント
- IFはラフスケッチで合意した内容に沿っているか
- 既存のTask系APIのTypistクラスの名前変更に関して、修正抜け漏れはないか
- チェックアウト候補変更APIのリクエスト/レスポンスのクラス名は適切か

## UIの変更
- なし

## 動作確認状況
- ローカルでPostmanにてAPIIFの値が返ることを確認しました

## 補足
- 特になし
2023-06-14 07:55:22 +00:00
saito.k
34b242684b Merged PR 154: API実装(タスク一覧取得 | author)
## 概要
[Task1949: API実装(タスク一覧取得 | author)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1949)

- タスク一覧取得(Author用)
  - AuthorIDとAccountIDを条件にタスクを取得する処理を実装
- テスト実装
  - 成功ケースの時に、Repositoryのメソッドが正しい引数で呼ばれているか確認するテストを追加

## レビューポイント
- テスト実装の内容はこれでよいか
- DBから取得した値をレスポンス用の型に変換する処理はAdminと同様の認識だがあっているか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認
- 実際にデータを取得して内容が正しいか確認

## 補足
- 相談、参考資料などがあれば
2023-06-14 03:57:30 +00:00
masaaki
3220ae0552 Merged PR 157: accounts.repository.service.tsの参照があやまっている
## 概要
[Task1960: accounts.repository.service.tsの参照があやまっている](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1960)

- constantsの参照についてsrcフォルダを参照しないように修正しました

## レビューポイント
- 特になし

## UIの変更
- 特になし

## 動作確認状況
- ビルドが成功することを確認

## 補足
- 相談、参考資料などがあれば
2023-06-13 09:45:30 +00:00
oura.a
201b6be260 Merged PR 150: API実装(自アカウント情報取得API)
## 概要
[Task1954: API実装(自アカウント情報取得API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1954)

・アクセストークンからユーザ情報を取得する処理を追加。
(本タスクで返しているのはアカウントIDのみ)
・本タスクのレビュー対象は以下となります。
 ・accounts.servicce
   getMyAccountメソッド
 ・accounts.controller
   @Get('me')
 ・accounts.service.spec
   'アクセストークンからユーザ情報を取得する'
   'ユーザ情報が取得できない場合エラーとなる'
・別タスクで作成したテストコードを取り込むためマージしたところ、controllerの別タスク箇所でエラーが出ていたので、一時的にコメントアウトしています。本タスクの挙動には影響ありません。

## レビューポイント
処理に過不足がないか。
エラーハンドリングが適切か。

## UIの変更
なし

## 動作確認状況
ローカルでユニットテスト実施済み。
ローカルで外部からAPIを実行し、動作確認済み。

## 補足
なし
2023-06-13 07:39:10 +00:00
makabe.t
85d8221186 Merged PR 149: テスト実装(タスク一覧取得|admin)
## 概要
[Task1955: テスト実装(タスク一覧取得|admin)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1955)

- タスク一覧のテストを実装しました。
  - adminの時のテストだけです
  - テストとテストに必要なmockを実装しています。

## レビューポイント
- テスト項目として不足はないか
- mockの構成に問題はないか

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
  - テスト実行
2023-06-13 04:23:21 +00:00
湯本 開
f5ce65add8 Merged PR 147: Task一覧APIのstatusの入力チェックを行うデコレータを実装する
## 概要
[Task1957: Task一覧APIのstatusの入力チェックを行うデコレータを実装する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1957)

- Statusに該当する文字列が `,` で連結されている場合のみバリデーション通過となるようなデコレータを実装

## レビューポイント
- 実装コストを考慮して汎用的な指定をできるようにしなかったが問題ないか
- 実装コードは妥当な実装になっているか

## 動作確認状況
- ローカルで確認
2023-06-12 05:26:26 +00:00
湯本 開
26098cc400 Merged PR 130: API実装(タスク一覧取得 | admin)
## 概要
[Task1831: API実装(タスク一覧取得 | admin)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1831)

- AdminがAPIを呼び出したときの処理である、アカウント内のTask情報すべてを取得するロジックを実装

## レビュー対象外
- Transcription開始日時と終了日時が必須プロパティになっている
  - [Task一覧APIのResponseで省略可能でないといけないプロパティが必須になっている箇所を修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_workitems/edit/1956)で修正予定のため
- ユニットテストが未実装
  - [テスト実装(タスク一覧取得 | admin)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_workitems/edit/1955)で実施予定のため
- API I/Fのstatusのバリデーションがされていない
  - [Task一覧APIのstatusの入力チェックを行うデコレータを実装する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_workitems/edit/1957)で実施予定のため

## レビューポイント
1. SQLの発行方法は問題なさそうか
   - ~.entityに依存関係を記述( `@OneToOne(...)` や `@OneToMany(...)` )し、TypeORMでの取得時の挙動に任せる方法でよさそうか
2. Permissionテーブル以下も含めて一括でTypeORMによるクエリビルダーに任せたかったが、他の上手くいっている構造と同じ指定をしてもSQL発行時に指定したカラム名を取ってこなくなるという問題が解決できなかったため、2回に分けて取ってくるようにしたが許容可能そうか?
3. 各テーブルでRepositoryを作ってEntityを定義し、他RepositoryからはそのRepository配下のディレクトリを参照するという形を取ってみたが、方針として問題ないか
   - 各テーブルを個別に取得したい場合があるかも?という予想があったため
4. Serviceのつくりとして問題はなさそうか(roleによる呼び分けの実装方法など)
5. RepositoryDTO→ControllerDTOの型変換が複雑であったため、専用のconvert.tsというファイルに分離したが、方針として問題なさそうか

## 動作確認状況
- ローカルで確認
2023-06-12 03:50:48 +00:00
makabe.t
1082a48fe9 Merged PR 139: 認証・認可を宣言的に扱える仕組みを既存処理に適用する
## 概要
[Task1830: 認証・認可を宣言的に扱える仕組みを既存処理に適用する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1830)

- 既存処理について、認証認可をガードで実施するよう以下のAPIに適用しました。
- ユーザー一覧
  -  GET /users
- ユーザー追加
  - POST /users/signup/
- 音声ファイルアップロード先取得
  - GET /files/audio/upload-location/
 - ライセンス注文
   - POST /licenses/orders
ロールガードのテストで定数を使うように修正

## レビューポイント
- 対応APIの抜け漏れはないか
- 対応内容に問題はないか
  - 付与権限
  - トークン内容取得

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-06-09 08:39:44 +00:00
masaaki
f126b0976e Merged PR 146: API IF実装(accounts/me復活)
## 概要
[Task1953: API IF実装(accounts/me復活)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1953)

- accounts/meのIFを追加しました
 ※別タスク「タスク 1837: API I/F実装」でレビューまでしてもらったものの、階層をアクセストークンに含める方針としたため削除としたものを復活させています。
- prettierがエラーを出力するようになっていたので、以下URLを参考にsettings.jsonを更新しています
https://qiita.com/TellMin/items/a634149730b777e2e6d0
- このPull Requestでの対象外
 ・openapi.jsonのL952とL2094については本PBI対象外になります

## レビューポイント
- 特にありません

## UIの変更
- 無し

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-06-09 07:34:49 +00:00
saito.k
0907bd28af Merged PR 138: SendGridService内のprivateキーの取得方法を修正する
## 概要
[Task1736: SendGridService内のprivateキーの取得方法を修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1736)

- CryptoServiceの削除
- トークン発行・認証に使用するKeyを環境変数から取得するように修正
- 既存テストの修正

## レビューポイント
- Keyの取得関数の配置場所は妥当か

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルでテストが通ることを確認
- keyを使う処理(ユーザー追加)を実行して、成功することを確認

## 補足
- 修正した箇所のロールチェックはレビュー対象外
  - 「タスク 1830: 認証・認可を宣言的に扱える仕組みを既存処理に適用する」で調整してもらう想定
2023-06-09 05:35:39 +00:00
maruyama.t
c4aaee07b1 Merged PR 137: アクセストークン内に階層情報を含める
## 概要
[Task1925: アクセストークン内に階層情報を含める](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1925)

- アクセストークンとリフレッシュトークンにtierを追加

## レビューポイント
- tierのチェックは必要か
- DBの値をそのまま入れているが問題ないか

**以下は別タスクとして切り出す**
- RoleGuardsを拡張してtierもチェックできるようにする処理を追加し、階層ごとに許可される操作をI/Fの属性として宣言的にチェックできるように修正した箇所について、使いやすそうか。
例)
@UseGuards(RoleGuard.requireds({ roles: ['admin', 'author'] }))
の場合(階層の宣言はしていない場合)許可@UseGuards(RoleGuard.requireds({ roles: ['admin', 'author'], tier [2] }))の場合(階層の宣言をしている場合)ユーザのアカウントの階層を見て、2以上なら許可、2未満なら拒否
 

## UIの変更
- なし

## 動作確認状況
- ローカルで確認

## 補足
- https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_wiki/wikis/OMDSDictation_wiki/202/%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3
wikiにアクセストークンとリフレッシュトークンについてのページを記載しました。
2023-06-08 08:28:10 +00:00
makabe.t
3dca5c604b Merged PR 126: 画面実装(タスク一覧画面)
## 概要
[Task1834: 画面実装(タスク一覧画面)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1834)

- タスク一覧画面を実装しました。
- 表示項目、フィルターを制御できるようにしています
- 表示項目はlocalStorageに保存するようにしています
- ソート順の取得、変更、更新をする処理を追加

## レビューポイント
- デザインの反映は適切か
- フィルター、表示の反映ロジックは適切か
- ソートの反映を追加したので適切か確認をお願いします。

## UIの変更
- [Task1834](https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task1834?csf=1&web=1&e=zBcQ6i)

## 動作確認状況
- ローカルで確認
  - API呼び出しは未検証
2023-06-08 08:04:34 +00:00
saito.k
942ac30d8f Merged PR 136: API実装(ソート条件取得API)
## 概要
[Task1923: API実装(ソート条件取得API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1923)

- ソート条件取得APIを実装
- テスト追加

## レビューポイント
- ソート条件取得APIのレスポンスのデータは足りているか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-06-07 09:21:20 +00:00
saito.k
9441049201 Merged PR 134: API修正(IF)
## 概要
[Task1922: API修正(IF)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1922)

- タスク取得APIの引数を修正
  - directionとparamNameを追加
- 定数を文字列配列からオブジェクトに変更

## レビューポイント
- 引数の型を自作のものに修正したが問題ないか。
  - Pull Request 128: API実装(ソート条件変更)で議論中

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-06-07 07:45:30 +00:00
saito.k
d5e5e59f8c Merged PR 128: API実装(ソート条件変更)
## 概要
[Task1835: API実装(ソート条件変更)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1835)

- ソート条件変更APIを実装
  - トークンからB2CのIDを取得→userテーブルからユーザー情報を取得
  - ユーザーIDでソート条件テーブルを検索→レコードを更新
- ソート条件テーブルにレコードを作成する
  - アカウント作成時の処理にソート条件レコードを作成する処理を追加
  - ユーザー追加時にも処理を追加
- テスト修正

## レビューポイント
- APIの引数をチェックする関数をControllerに配置してもよいか
- ソート条件のレコードを作成するタイミングに漏れはないか
- 実装漏れはないか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-06-06 08:20:21 +00:00
masaaki
cfca98e53b Merged PR 133: API I/F実装
## 概要
[Task1837: API I/F実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1837)

- ラフスケッチに基づき、「アカウント情報取得API」「ライセンス集計取得API(ラフスケッチ時は「第五階層用ライセンス情報取得API」)」のI/F実装とopenapi化を行いました。

## レビューポイント
- 管理者のみのためUseGuardsを使用しています。実装内容について問題ないか特に確認いただきたいです

## UIの変更
- 無し

## 動作確認状況
- ローカルで確認済

## 補足
- 無し
2023-06-06 07:00:11 +00:00
maruyama.t
890b004a9c Merged PR 124: [PBI1221指摘対応]ライセンス注文APIの中で画面から渡ってきたパラメータのバリデーションを行う
## 概要
[Task1901: [PBI1221指摘対応]ライセンス注文APIの中で画面から渡ってきたパラメータのバリデーションを行う](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1901)

- バリデーションチェック処理をコントローラに追加
- 未使用のimportを削除
- エラーテストで比較するメッセージが間違っていたので合わせて修正

## レビューポイント
- バリデーションのタイミングは適切か
- バリデーションの範囲に過不足がないか

## UIの変更
- なし

## 動作確認状況
- ローカルで確認

## 補足
- licenses.controller.ts以外もセルフチェックを行いました。
2023-06-05 07:06:20 +00:00
saito.k
0ca766f309 Merged PR 127: Task1856: DBマイグレーション(タスク一覧取得)
## 概要
[Task1856: DBマイグレーション(タスク一覧取得)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_sprints/taskboard/OMDSDictation%20%E3%83%81%E3%83%BC%E3%83%A0/OMDSDictation/%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%2010-1?workitem=1856)

- 必要なテーブルを作成
  - ユーザーグループテーブル
  - ユーザーグループ所属テーブル
  - ソート条件テーブル
  - チェックアウト権限テーブル

## レビューポイント
- テーブル名は妥当か
- 各カラムの型や制約、コメントは妥当か
  - ユーザーグループ名はNOT NULLでよい?
  - ソート条件のカラム名はNOT NULLでよい? 
- チェック制約を追加したが問題なさそうか

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認
  - Migrate up /Migrate downでテーブル追加・削除を確認
  - チェック制約で片方のカラムのみ値が入ることを確認(両方値がある or 両方NULLではNG)

## 補足
2023-06-02 08:13:33 +00:00
湯本 開
1ced5ef66d Merged PR 123: API実装(I/F実装)
## 概要
[Task1836: API実装(I/F実装)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1836)

- タスクのソート条件更新APIのI/Fを実装
- タスク一覧APIのI/Fを修正
- TODO/XXXですぐ対処可能、または単純に消し忘れているものを対処

## レビューポイント
- API I/Fの修正は妥当な内容であるか
  - 特にfilterはカンマ区切りでいいか、指定したものを除外という形式でいいか等
- TODO/XXXの対処は妥当な対処であるか

## 動作確認状況
- ローカルでswagger表示されることを確認
2023-06-02 06:12:35 +00:00
makabe.t
e4f84f78ba Merged PR 121: リフレッシュトークンの発行方法・発行内容が不適切な問題の修正
## 概要
[Task1904: リフレッシュトークンの発行方法・発行内容が不適切な問題の修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1904)

セキュリティ・権限管理の要であるリフレッシュトークンのロール設定に関する修正ですので、開発メンバー全員にご確認いただき、変更内容について認識を合わせていただきたいです。
- リフレッシュトークンの発行で使用するロールがクライアントから送られた値をそのまま利用する実装になっていましたので、APIのロールの取り扱いを修正しました
  - ユーザー追加APIで想定している(author/typist/none)のみを受け付けるようにする
    - 想定外のロールの場合は400エラー
    - クライアントからも想定通りのロールを送信するようロールの定数値を修正
  - リフレッシュトークンを発行する際にDBの値をそのまま使わず、想定値のどれかを判断して定数を設定する
    - DBに登録されているロールが想定外の文字列の場合は500エラーとなる

## レビューポイント
- トークンのロール設定が安全にできるようになっていることをメンバー全員で合意
- APIのパラメータを受け付ける際にIsInで想定ロール文字列のみを受け付けるようにしているが問題はないか
- リフレッシュトークンの生成時に直接DBのロールを設定しないようにしたが、トークンのロール設定として問題はないか
  - 意図しないトークンへの権限の付与などは起こりえないか。
    - クライアントからadminなどのユーザー追加時に想定していない権限を付与しようとしてもAPIではじかれるか

## UIの変更
- なし

## 動作確認状況
- ローカルで確認

## 補足
- ユーザー追加時に登録されるロールが変更となったのでマージ後に利用する場合は再度の登録をお願いします。
2023-06-02 04:55:28 +00:00
oura.a
ab618984eb Merged PR 120: DBマイグレーション
## 概要
[Task1839: DBマイグレーション](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1839)

- migrationファイルの追加(ライセンステーブル/ライセンス割り当て履歴テーブル)

## レビューポイント
-カラム名などに違和感がないか
-NOT NULL制約や型が正しいか

## UIの変更
- なし

## 動作確認状況
- MySQL Workbenchでの確認
DBのマイグレート
sql-migrate up -config=db/dbconfig.yml -env=localを実行してテーブルが作成されるのを確認
sql-migrate down -config=db/dbconfig.yml -env=localを実施して巻き戻せることも確認

## 補足
- licenses.type(ライセンス種別:トライアル/通常/カード)
- licenses.status(ライセンス状態:未割当/割り当て済/削除済)
- licenses_history.oparation_type(割り当て種別:割り当て/割り当て解除)
- licenses_history.exchange_type(ライセンス切り替え種別:なし/トライアル→通常/紙→通常)
2023-06-02 04:34:25 +00:00
maruyama.t
2c935c8b52 Merged PR 101: API実装(ライセンス注文登録)
## 概要
[Task1685: API実装(ライセンス注文登録)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1685)

タスク 1685: API実装(ライセンス注文登録)
ライセンス注文APIを追加

## レビューポイント
登録時のDB処理方法に問題がないか。
処理、エラーハンドリングに過不足がないか。

## UIの変更
なし

## 動作確認状況
ローカルでユニットテストを実施。
ローカルでAPIを実行し、DBに登録できること・poNumberの重複チェックが想定通りに動作していることを確認。

## 補足
なし
2023-05-30 07:17:43 +00:00
makabe.t
3191e22ab6 Merged PR 119: 音声ファイルアップロード完了API実装
## 概要
[Task1712: 音声ファイルアップロード完了API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1712)

- 音声ファイルアップロード完了APIを実装しました。
  - DBへの登録処理を追加しています
    - 音声ファイルテーブル
    - オプションアイテムテーブル
    - 文字起こしタスクテーブル
- jwtトークンデコードがうまくいかないことがありましたので応急対応を入れています。
  - 参考:https://github.com/auth0/node-jsonwebtoken/issues/875

## レビューポイント
- DBへの登録処理・内容は適切か
- JOBナンバーの採番は適切か
- jwtデコードの対応は適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-05-30 03:40:36 +00:00
makabe.t
a430bd01e5 Merged PR 118: DBマイグレーション
## 概要
[Task1713: DBマイグレーション](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1713)
[Task1711: [タスク追加PBIでまとめて対応] Userテーブルのaccepted_terms_versionのNOT NULL制約を削除する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_workitems/edit/1711)

- タスク追加で必要となるテーブル作成するマイグレーションファイルを追加
  - 音声ファイル
  - 文字起こしタスク
  - オプションアイテム(音声ファイルメタデータ)
- Userテーブルの「同意済み利用規約バージョン」カラムのNOT NULL制約を外すマイグレーションファイルを追加

## レビューポイント
- タスク追加で必要となるテーブルを1ファイルにまとめているが問題ないか
- 各テーブルのカラム名、型は適切か

## UIの変更
- 無し

## 動作確認状況
- ローカルで確認
  - UP/DOWN
2023-05-26 06:23:41 +00:00
oura.a
4ec3d7c51f Merged PR 114: [MISOチーム] ユーザ追加時のAuthorIDの重複チェックがエラーの場合にAzureにアカウント追加しないよう修正する
## 概要
[Task1765: [MISOチーム] ユーザ追加時のAuthorIDの重複チェックがエラーの場合にAzureにアカウント追加しないよう修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1765)

タスク 1765: [MISOチーム] ユーザ追加時のAuthorIDの重複チェックがエラーの場合にAzureにアカウント追加しないよう修正する
・ユーザ追加時、Azureへのユーザ登録前に同一アカウント内のAuthorIDの重複チェックを追加。

## レビューポイント
処理に問題がないか。

## UIの変更
なし

## 動作確認状況
ローカルでユーザ追加APIを実行し、同一AuthorIDの際にエラーが出ることを確認。

## 補足
なし
2023-05-25 06:54:50 +00:00
oura.a
24a784b02f Merged PR 115: [MISOチーム] typeが「None」のステータスについてアカウント追加時(none)とユーザ追加時(None)で表記ゆれがある
## 概要
[Task1766: [MISOチーム] typeが「None」のステータスについてアカウント追加時(none)とユーザ追加時(None)で表記ゆれがある](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1766)

タスク 1766: [MISOチーム] typeが「None」のステータスについてアカウント追加時(none)とユーザ追加時(None)で表記ゆれがある
・アカウント追加時のtypeを「none」から「None」に修正。

## レビューポイント
なし

## UIの変更
なし

## 動作確認状況
ローカルでアカウント登録APIを実行し、DBへの登録内容が「None」に修正されていることを確認。

## 補足
なし
2023-05-25 01:37:03 +00:00
oura.a
810be5c055 Merged PR 99: ライセンス注文テーブルをMySQL上に作成する
## 概要
[Task1680: ライセンス注文テーブルをMySQL上に作成する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1680)

タスク 1680: ライセンス注文テーブルをMySQL上に作成する
ライセンス注文テーブルを作成するマイグレーションファイルを作成。

## レビューポイント
テーブル定義・カラム定義が正しいかどうか。
テーブル名・カラム名が適切かどうか。

## UIの変更
なし

## 動作確認状況
ローカルで動作確認し、テーブルが作成されることを確認。
また、世代巻き戻しでテーブルが削除されることを確認。

## 補足
なし
2023-05-24 01:30:36 +00:00
湯本 開
6a8cfd5530 Merged PR 94: [Sp8-2で絶対着手] 認証・認可を宣言的に扱える仕組みの実装
## 概要
[Task1725: [Sp8-2で絶対着手] 認証・認可を宣言的に扱える仕組みの実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1725)

- 認証(アクセストークンが正しいか)の認証を `@UseGuards(AuthGuard)` をControllerに追加することで確認できる仕組みを追加
  - 実際の修正は別Task想定
- 権限チェック(アクセストークンに含まれる権限でAPI呼び出し可能か)のチェックを `@UseGuards(RoleGuards.configure({ ... }))` をControllerに追加することで確認できる仕組みを追加
  - 実際の修正は別Task想定
- 具体的な使い方はテスト、あるいはUsersControllerのGET /usersのコメントアウトされたコード参照
- 無駄に重複していたコードを共通化

## レビューポイント
- 使いやすそうか?
- この認証Guardsを使用して認証する時の懸念点はないか
- コードに問題はなさそうか
- テスト容易性のため、公開するべきでないメソッドを公開している事に対して納得できるか

## 動作確認状況
- ローカルで確認
2023-05-22 08:08:02 +00:00
斎藤 快斗
58203f39c8 許可するヘッダーを追加 2023-05-17 11:05:58 +09:00
斎藤 快斗
de2b2227e2 許可するメソッドを追加 2023-05-17 10:50:47 +09:00
斎藤 快斗
1ceab68b42 特定のオリジンからのリクエストを許可する 2023-05-17 10:40:43 +09:00
saito.k
4cf444ab42 Merged PR 98: API実装(SASトークン発行)
## 概要
[Task1737: API実装(SASトークン発行)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1737)

- SASトークンを発行する処理を実装
- コンテナ作成処理を実装
  - 本来はアカウント登録時に作成されるが、動作検証のためSAS発行時に作成するように実装している
- コンテナ存在確認の処理を実装

## レビューポイント
- 実装した処理に漏れはないか
- エラーの処理に考慮漏れはないか
- テストケースは十分か

## 動作確認状況
- ローカルでコンテナ作成とURL発行を確認

## 補足
- 相談、参考資料などがあれば
2023-05-17 00:38:39 +00:00
x.sunamoto.k
7da5a1fda4 Merged PR 111: 次回サインインにおけるパスワード変更の要否を指定していない
## 概要
[Task1761: 次回サインインにおけるパスワード変更の要否を指定していない](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1761)

- パスワード変更後、ログインしようするとすると「Your password has expired.」となる事象について対応を実施。パスワード変更時「forceChangePasswordNextSignIn: false」を設定するよう修正。

## レビューポイント
- 特になし

## UIの変更
- 無し

## 動作確認状況
- ローカルで確認済

## 補足
- 相談、参考資料などがあれば
2023-05-16 23:58:15 +00:00
maruyama.t
b07ede7f1b Merged PR 109: confirmUserAndInitPasswordのtry分の中身の順序を入れ替える。
## 概要
[Task1755: confirmUserAndInitPasswordのtry分の中身の順序を入れ替える。](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1755)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2023-05-16 01:08:50 +00:00
maruyama.t
a891d7fb64 Merged PR 110: メール本文に仮パスワードを記載する
## 概要
[Task1756: メール本文に仮パスワードを記載する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1756)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
- このPull Requestでの対象/対象外
- 影響範囲(他の機能にも影響があるか)

## レビューポイント
- 特にレビューしてほしい箇所
- 軽微なものや自明なものは記載不要
- 修正範囲が大きい場合などに記載
- 全体的にや仕様を満たしているか等は本当に必要な時のみ記載

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- ローカルで確認、develop環境で確認など

## 補足
- 相談、参考資料などがあれば
2023-05-16 00:52:43 +00:00
maruyama.t
d104864f08 Merged PR 108: changePassword処理時の権限の調査
## 概要
[Task1754: changePassword処理時の権限の調査](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1754)

- graphClient.api.patchは戻り値を返さないので、changePasswordの戻り値をvoidに変更しました
- Azure AD B2C上のアプリケーション「adb2c-graph-app」に対して以下の変更を行いました
  - アクセス許可に「Directory.ReadWrite.All」「User.ManageIdentities.All」「User.ReadWrite.All」を追加
  - 「adb2c-graph-app」にユーザー管理者権限を付与
    参考URL:https://blog.kokoni.jp/2021-01-23-142542/

## レビューポイント
- 特になし

## UIの変更
- 無し

## 動作確認状況
- ローカルで確認

## 補足
- 相談、参考資料などがあれば
2023-05-16 00:28:50 +00:00
oura.a
d982d7e129 Merged PR 107: ユーザ作成時の認証メール内URL修正
## 概要
[Task1753: ユーザ作成時のメール内認証URL修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1753)

タスク 1753: ユーザ作成時のメール内認証URL修正
・ユーザ作成時のメール内リンクが「mail-confirm/?~」になっているのを「mail-confirm/user/?~」に変更。
・リンク先の動作は本タスクでは対象外。

## レビューポイント
変更箇所が合っているか?

## UIの変更
なし

## 動作確認状況
ローカルでユニットテスト実施済み。
ユーザ作成APIを実行し、送信されたメール内のリンクが「mail-confirm/user/?~」になっていることを確認。

## 補足
なし
2023-05-16 00:15:38 +00:00
x.sunamoto.k
3ebfe4a585 Merged PR 103: DBのユーザIDではなくAzureのIDを条件に取得できるよう修正
## 概要
[Task1744: DBのユーザIDではなくAzureのIDを条件に取得できるよう修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1744)

タスク 1744: DBのユーザIDではなくAzureのIDを条件に取得できるよう修正
・アクセストークンのIDからアカウントIDを取得する際に使用する関数を「findUserById」から「findUserByExternalId」に変更。
・ユーザ一覧取得時のDB処理を修正。

## レビューポイント
・アクセストークンのIDからアカウントIDを取得する際に、斎藤さんがPR93で作成している「findUserByExternalId」を使用しているが問題ないか?
・ユーザ一覧取得時の処理に問題がないか?

## UIの変更
なし

## 動作確認状況
ローカルでのユニットテスト実施済み。
ユーザ作成APIを実行し、ユーザ作成ができることを確認。
ユーザ一覧取得APIを実行し、ユーザ一覧が取得できることを確認。

## 補足
なし
2023-05-15 06:37:33 +00:00
makabe.t
7353de035f Merged PR 100: 外部連携API、アップロード完了の認証ヘッダを追加&抜け漏れがないか再確認
## 概要
[Task1738: 外部連携API、アップロード完了の認証ヘッダを追加&抜け漏れがないか再確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1738)

- 外部連携APIの修正
  - 音声ファイルアップロード完了APIの認証ヘッダを追加

## レビューポイント
- 修正内容として適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-05-12 08:19:07 +00:00
saito.k
b91d260015 Merged PR 93: [WIP]API実装
## 概要
[Task1630: API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1630)

- アップロード先取得APIの実行権限をチェックするためにアクセストークンに権限情報とロール情報を追加する
- ログイン時に発行しているトークンにパラメータを追加
  - role
    - ユーザーのrole情報(typist/author)
  - scope
    - 管理者権限があるか (admin/空文字)

- トークン発行前にDBからユーザーの情報を取得する処理を追加
- ユーザーを取得するときにユーザーが属しているアカウントの情報も取得するようにentitiyを修正
- `findUserByExternalId`で実行されるSQL
```
SELECT
    `User`.`id` AS `User_id`,
    `User`.`external_id` AS `User_external_id`,
    `User`.`account_id` AS `User_account_id`,
    `User`.`role` AS `User_role`,
    `User`.`author_id` AS `User_author_id`,
    `User`.`accepted_terms_version` AS `User_accepted_terms_version`,
    `User`.`email_verified` AS `User_email_verified`,
    `User`.`deleted_at` AS `User_deleted_at`,
    `User`.`created_by` AS `User_created_by`,
    `User`.`created_at` AS `User_created_at`,
    `User`.`updated_by` AS `User_updated_by`,
    `User`.`updated_at` AS `User_updated_at`,
    `User__User_account`.`id` AS `User__User_account_id`,
    `User__User_account`.`parent_account_id` AS `User__User_account_parent_account_id`,
    `User__User_account`.`tier` AS `User__User_account_tier`,
    `User__User_account`.`country` AS `User__User_account_country`,
    `User__User_account`.`delegation_permission` AS `User__User_account_delegation_permission`,
    `User__User_account`.`locked` AS `User__User_account_locked`,
    `User__User_account`.`company_name` AS `User__User_account_company_name`,
    `User__User_account`.`verified` AS `User__User_account_verified`,
    `User__User_account`.`primary_admin_user_id` AS `User__User_account_primary_admin_user_id`,
    `User__User_account`.`secondary_admin_user_id` AS `User__User_account_secondary_admin_user_id`,
    `User__User_account`.`deleted_at` AS `User__User_account_deleted_at`,
    `User__User_account`.`created_by` AS `User__User_account_created_by`,
    `User__User_account`.`created_at` AS `User__User_account_created_at`,
    `User__User_account`.`updated_by` AS `User__User_account_updated_by`,
    `User__User_account`.`updated_at` AS `User__User_account_updated_at`
FROM
    `users` `User`
    LEFT JOIN `accounts` `User__User_account` ON `User__User_account`.`id` = `User`.`account_id`
WHERE
    ((`User`.`external_id` = ?))
    AND (`User`.`id` IN (?)) -- PARAMETERS: ["B2CのID","2"]

```

## レビューポイント
- 管理者権限の有無とロールは別の概念であるため、別のパラメータとして用意したが問題なさそうか
  - 他の案としてscopeの中に`typist , admin`のようにして、一つのパラメータで権限チェックする?
- DBから取得するデータとしてユーザーが属しているアカウント情報のすべてのカラムを取得するようにしているが、必要なカラムのみにしたほうが良いか?

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況
- 実行SQLを確認、JWTの内容を確認

## 補足
- 相談、参考資料などがあれば
2023-05-12 04:48:09 +00:00
x.sunamoto.k
3f7a9ed11a Merged PR 75: API実装(ユーザー一覧取得)
## 概要
[Task1592: API実装(ユーザー一覧取得)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1592)

- ユーザ一覧取得のAPIを実装
- アクセストークンにより権限を確認する
 - src/common/jwt/jwt.ts verifyAuthority([Task1593: API実装(ユーザー登録)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1593)で作成)を呼び出すため追って再修正します。(レビュー対象外です)
 - src/features/users/users.controller.ts getUsersから
  src/features/users/users.service.ts getUsersへ
- DBから同一アカウントのユーザ一覧を取得する
 - findSameAccountUsersを新規作成

- Azure AD B2Cからユーザーを取得してマージ
 - src/gateways/adb2c/adb2c.service.ts getUserを新規作成
 - マージはfor文でまわしています(力技)
- マージした結果を返却

- 影響範囲
 - usersテーブルの変更が入るときにマージ部分の手直しが要ります。(TODOを添えています)

## レビューポイント
- 新規に作成したfindSameAccountUsersの妥当性
- 新規に作成したgetUserの妥当性
→Azureからの返り値はsrc/common/token/types.tsに定義済。
 (Azure AD B2Cから取得できた項目で再定義)

## UIの変更
- 特になし

## 動作確認状況
- ローカルでビルド、テストを実行した後に動作を確認済。

## 補足
- ご不便をおかけしました。よろしくお願いします。
2023-05-12 01:27:19 +00:00