43 Commits

Author SHA1 Message Date
湯本 開
9803ba4e46 Merged PR 326: テストを最新化(パートナー追加)
## 概要
[Task2401: テストを最新化(パートナー追加)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2401)

- DBテストに修正
- Utilityを追加
- 実装側の変数名やコメント等を修正
- テストに使用するメールアドレスを一般的に使用するべきドメインに修正
  - 参考:
    - https://zenn.dev/progfay/articles/email-example-com
    - https://qiita.com/suzutsuki0220/items/4ad83ed2e2adbb6507a4
- `Promise<void>` となっていた部分をテスト用に `Promise<{accountId: number}>` に修正
  - 返り値を使用しているのはテスト側のみ

## レビューポイント
- 将来的にBlobStorageやSendMailで失敗したケース等も必要だが、それは異常系実装タスク内でテストが追加される想定なので今回追加していないが認識は合っているか
- 各種修正に対して、疑問点や問題点はないか

## 動作確認状況
- npm run testで成功
2023-08-18 02:11:09 +00:00
makabe.t
ad969bd2cf Merged PR 323: アカウント登録APIを修正
## 概要
[Task2353: アカウント登録APIを修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2353)

- アカウント登録時にコンテナを作成するように修正
- ログ追加
- リクエストのバリデータを追加

## レビューポイント
- 処理の流れに問題はないか
- テストケースに不足はないか
- バリデータに問題はないか

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-08-16 09:12:56 +00:00
湯本 開
924106d608 Merged PR 330: pipelineでテストが失敗する現象を修正する
## 概要
[Task2416: pipelineでテストが失敗する現象を修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2416)

- テストの仕組み改善によって、SendGridの上書き部分の挙動が変わっていたことに対する対処が漏れていたものに対処

## レビューポイント
- 情報共有
- 追加したSendMailの特別扱いは妥当であるか

## 動作確認状況
- npm run testで成功
2023-08-16 05:28:58 +00:00
湯本 開
704a5aafc2 Merged PR 327: テストを最新化(ユーザー追加)
## 概要
[Task2400: テストを最新化(ユーザー追加)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2400)

- 新規ユーザー追加のユニットテストをDBを利用するテストへ置き換え
- API呼び出しやRepository呼び出しをMockする仕組みを改善
  - オブジェクト全てを上書きするのではなく、特定のメソッドのみを上書きする形に修正
    - これにより、他のDBアクセスは正常にSQLiteへのアクセスが成功しつつ、特定のDBアクセスのみMockにできる

## レビューポイント
- テストケースは足りているか
- Mockする仕組みを改善したが、修正内容は問題ないか

## 動作確認状況
- npm run test で成功
2023-08-16 02:54:32 +00:00
saito.k
86d11e7447 Merged PR 314: ユーザー確認API修正
## 概要
[Task2351: ユーザー確認API修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2351)

- アカウント登録後のユーザー検証時に、トライアルライセンスを作成する処理を追加
- テスト修正

## レビューポイント
- トライアルライセンスの有効期限の設定はこれでよいか
- トライアルライセンスの登録内容は正しいか
- テストケースは足りているか、確認するパラメータに不足はないか

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

## 補足
- `npm run format`で複数ファイルが更新されていますが、修正を加えたのは以下のファイルです。
  - /dictation_server/src/constants/index.ts
  - /dictation_server/src/features/users配下のファイル
  - /dictation_server/src/repositories/users/users.repository.service.ts
2023-08-16 02:13:10 +00:00
oura.a
356f5fe346 Merged PR 320: API実装(ライセンス割り当てAPI)_履歴以外
## 概要
[Task2362: API実装(ライセンス割り当てAPI)_履歴以外](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2362)

ライセンス割り当てのAPIを作成しました。
※ライセンス割り当て履歴テーブルが絡む処理は別タスクでの対応となるので、ここでは未実装です。

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

## UIの変更
なし

## 動作確認状況
ローカルでUT、動作確認実施済み

## 補足
なし
2023-08-10 08:26:44 +00:00
oura.a
3b785e97aa Merged PR 317: API-IF実装
## 概要
[Task2360: API-IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2360)

ライセンス割り当てのAPI-IFを作成しました。

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

## UIの変更
なし

## 動作確認状況
Swagger UIで反映されていることを確認

## 補足
なし
2023-08-09 08:46:01 +00:00
saito.k
4565d59a51 Merged PR 301: ユーザー追加修正(API/画面)
## 概要
[Task2327: ユーザー追加修正(API/画面)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2327)

- ユーザー追加API
  - リクエストにencryption,encryptionPassword,promptを追加
  - リクエストからtypistGroupIdを削除
  - ロールに応じてDBに保存するデータを作成する処理を追加
  - リクエストパラメータのバリデーションチェックを追加
- ユーザー追加画面
  - TypistGroupの選択欄を削除
  - RoleがAuthorの場合、encryption,encryptionPassword,promptを追加

## レビューポイント
- 修正に不足はないか
- 画面のユーザー追加処理を引数を渡さずにstoreから取得するようにしたが問題ないか
- 画面に必要な値をまとめて取るようにしたが問題ないか
- デザインに差異はないか

## UIの変更
- 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/Task2327?csf=1&web=1&e=uvTYlb

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

## 補足
- 相談、参考資料などがあれば
2023-08-07 00:11:54 +00:00
makabe.t
338d6b88a9 Merged PR 299: ユーザー編集API実装
## 概要
[Task2317: ユーザー編集API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2317)

- ユーザー編集APIとテストを実装しました。

## レビューポイント
- リポジトリでのチェックは適切か
- バリデータの適用は適切か
- テストケースは十分か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-08-04 05:39:33 +00:00
saito.k
6a2d2eabde Merged PR 298: ユーザー一覧修正(API・画面)
## 概要
[Task2318: ユーザー追加・一覧修正(API・画面)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2318)

- API
  - ユーザー一覧取得APIのレスポンスにUserIDを追加
  - OpenAPI生成

- 画面
  - コード自動生成
  - storeにidを含めたユーザー一覧情報を格納する

## レビューポイント
- 修正内容に認識違いはないか

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

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

## 補足
- ユーザー追加については別タスクで対応
2023-08-03 00:51:03 +00:00
makabe.t
f1684a5616 Merged PR 297: API IF実装
## 概要
[Task2319: API IF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2319)

- ユーザー編集APIのI/Fを実装しました。
  - openapi.json生成

## レビューポイント
- プロパティは適切か

## UIの変更
- なし

## 動作確認状況
- ローカルで確認 Swagger
2023-08-02 07:47:31 +00:00
makabe.t
794099f37d Merged PR 292: 外部連携APIにログを入れ込む(強化)
## 概要
[Task2294: 外部連携APIにログを入れ込む(強化)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2294)

- 外部連携APIのログを強化しました。
  - contextオブジェクトで操作者情報を渡すようにしています。
- ログポリシーに従って追加しています。
  - [ログポリシー](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_wiki/wikis/OMDSDictation_wiki/223/%E3%83%AD%E3%82%B0%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC)

## レビューポイント
- 出力内容に過不足はないか
- ログ追加対象に過不足はないか。
- contextで操作者情報を渡しているが想定通りか

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-08-02 01:07:02 +00:00
makabe.t
7ac578d4cc Merged PR 280: ユーザー一覧API修正
## 概要
[Task2231: ユーザー一覧API修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2231)

- ユーザー一覧取得APIを修正しまし、テスト実装を修正しました。
  - グループ情報、ライセンス情報を一緒に取得するよう修正
  - ADB2Cからのユーザー取得を一括取得に修正
※ユーザー以外のテスト変更はユーザーテーブルのスキーム変更に伴うものです。

## レビューポイント
- 取得内容に問題はないか
  - グループとライセンスはDBからリレーションで一緒に取得しているが処理的に問題はないか
  - ADB2Cからのメールアドレス取得のためにidentitiesパラメータを追加したが問題はないか
- テスト項目に問題はないか

## UIの変更
なし

## 動作確認状況
- ローカルで確認
2023-07-31 08:24:51 +00:00
makabe.t
386cee3bca Merged PR 283: API IF修正
## 概要
[Task2306: API IF修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2306)

- ユーザー一覧取得のAPI IFで抜けていた修正を入れました。
  - TypistGroupNameを配列で持つよう修正
  - nullableをrequiredに変更

## レビューポイント
- 共有

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-07-27 10:23:09 +00:00
makabe.t
d080bb74b3 Merged PR 279: ユーザー一覧API IF修正
## 概要
[Task2230: ユーザー一覧API IF修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2230)

- ユーザー一覧取得APIのIFを更新しました。
  - openapi.jsonを更新
  - サービスからの返却値をIFに合わせて仮の値を入れています。

## レビューポイント
- API IFの修正内容は認識通りか

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
  - Swagger
2023-07-27 08:11:56 +00:00
Kentaro Fukunaga
bb83f10a3e Merged PR 275: 固定値実装をOMDS要望に差し替え
## 概要
[Task2301: 固定値実装をOMDS要望に差し替え](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2301)

- 以下Backlog課題をもとに、getRelationsで返却する値を修正しました。
https://so-net.backlog.jp/view/OMDS_IS-132#comment-1408113084

## レビューポイント
- 情報共有

## 動作確認状況
- ローカルでPostman使って確認
2023-07-26 10:41:22 +00:00
Kentaro Fukunaga
c6f63c962c Merged PR 258: getRelationsを外部連携テスト用に内部実装
## 概要
[Task2257: 実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2257)

- AuthorIDは本物の値を返却し、それ以外はダミーの固定値を返却する実装を入れました。
- npm run formatをかけました

## レビューポイント
- 気になる点ないか:To真壁くん
- npm run formatの結果共有:Toガンさん(パートナー追加PBIのところで出ていたので)

## 動作確認状況
- ローカルでPostmanを使用し、Authorのときとそうでないとき両方確認
2023-07-23 23:41:09 +00:00
湯本 開
cfb7bdb4dc 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のみだったので今回対処しなかったが問題ないか

## 動作確認状況
- テストとビルドが通ることを確認
2023-07-21 03:06:12 +00:00
saito.k
3a7bf60f3e Merged PR 202: 画面実装(PlayBackボタン)
## 概要
[Task1997: 画面実装(PlayBackボタン)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1997)

- Playbackボタン押下時の挙動を実装
  - typist
    - 自身が割り当て候補となっているタスクをPlayBackする
    - 成功時、カスタムURLスキームでデスクトップアプリを起動する
  - author
    - 自身のAuthorIDと一致するタスクをPlayBackする
    - 成功時、カスタムURLスキームでデスクトップアプリを起動する
- ログイン時の、カスタムURLスキームを実際のデスクトップアプリのスキーム名に修正

## レビューポイント
- playbackAsyncのなかでソート条件更新APIを一緒に呼び出しているが問題ないか
  - ソート条件を更新するタイミングはここで問題ないか
  - ユーザーがTypistの時のみ更新するようにしたが問題ないか

## UIの変更
- 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/Task1997?csf=1&web=1&e=9kLaxo

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

## 補足
- Authorの挙動はAPI側の実装が完了していないので、未確認
2023-07-04 06:06:37 +00:00
saito.k
6a1226c62e Merged PR 165: タイピスト割り当て変更API実装
## 概要
[Task1932: タイピスト割り当て変更API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1932)

- タイピスト割り当て変更APIを実装
- テスト実装

## レビューポイント
- IFのバリデーションを実装したがチェック内容はこれでよさそうか
- DBのデータ取得・更新処理は問題ないか
  - DBへアクセスする回数は問題ない程度か
- パスパラメータのバリデーションは問題ないか

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

## 動作確認状況
- ローカルで確認(swaggerUI,Postman)

## 補足
- 別途sqliteを用いたテストを実装する予定
2023-06-23 04:04:01 +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
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
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
湯本 開
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
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
湯本 開
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
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
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
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
oura.a
e9af39bd47 Merged PR 71: API実装(ユーザー登録)
## 概要
[Task1593: API実装(ユーザー登録)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1593)

https://dev.azure.com/ODMSCloud/ODMS%20Cloud/_git/ODMS%20Cloud
users.controllerにアクセストークン取得処理を追加
users.serviceにユーザ追加処理を追加
user.entityにauto_renew、license_alert、notificationを追加
users.repository.serviceにユーザ追加・AuthorId検索処理を追加

## レビューポイント
処理の記載場所が適切かどうか
期待通りの処理になっているかどうか
テストコードの記載方法が正しいかどうか

## UIの変更
なし

## 動作確認状況
ローカルでのビルド・実行を確認

## 補足
テスト実装について不安要素があります。
・テストの粒度はこれでよいのでしょうか?
・テスト実行に40分かかってしまうのですが実装方法を間違えている箇所がありそうでしょうか?
2023-05-11 09:05:54 +00:00
maruyama.t
d297301212 Merged PR 82: API実装(メール認証)
## 概要
[Task1594: API実装(メール認証)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1594)

- メール認証APIを作成
- src/api/common/にpasswordを追加(ランダムパスワード発行ロジック)
- src/fuatures/gateway/adb2c.service.tsにユーザのパスワードを変更するメソッドchangePasswordを追加
- user.service.spec.tsにメール認証と仮パスワード発行のテストケースを追加
- 影響範囲
(user.service.spec.tsで行っていた既存のテストケース)

## レビューポイント
- commonにpasswordを追加したが、配置として適切かどうか
- user.service.tsのエラー発生時のロジックが十分であるか

## 動作確認状況
- ローカルで確認
2023-05-11 07:45:30 +00:00
makabe.t
b3ab401cbc Merged PR 90: 全体見直しをかけ、レビュー依頼する
## 概要
[Task1677: 全体見直しをかけ、レビュー依頼する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1677)

- 外部連携API IFについて見直し、各APIに説明を追加しました。
  - ユーザー情報取得API
  - 認証情報再生成API
  - 音声ファイルアップロード完了API(タスク追加API)
  - ステータス変更API
    - チェックアウト
    - チェックイン
    - キャンセル
    - 中断
    - 差し戻し
    - バックアップ
  - テンプレートファイルダウンロード先取得API
  - 次ファイル情報取得API
  - 音声ファイル、タスク情報取得API
  - 認証情報生成API

## レビューポイント
- 外部連携API IFの実装としても漏れはないか
- 各APIの説明は適切か
- 各APIのパス、パラメータは適切か
- API間で文言の統一はできているか

## UIの変更
無し

## 動作確認状況
- ローカルで確認
2023-05-08 08:26:24 +00:00
makabe.t
8a0815821e Merged PR 85: IF実装(ユーザー情報取得API/音声ファイルアップロード完了API)
## 概要
[Task1644: IF実装(ユーザー情報取得API/音声ファイルアップロード完了API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1644)

- 以下の外部連携APIのIFを実装しました。
  - ユーザー情報取得API
  - 音声ファイルアップロード完了API

## レビューポイント
- 音声ファイルアップロード完了APIについてTaskフォルダを掘って新規に追加したがフォルダ構成に問題はないか。
- IFの応答ステータスは適切か。
- リクエスト/レスポンスは想定通りか
  - ユーザー情報取得API応答のWorkTypeID周りが不安なのでご確認をお願いします。

## UIの変更
- なし

## 動作確認状況
- Swaggerをローカルで確認
2023-04-24 09:58:25 +00:00
湯本 開
6a5926ab3f Merged PR 70: API I/F実装(メール認証)
## 概要
[Task1599: API I/F実装(メール認証)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1599)

- エンドユーザーのメール認証を行うAPIのI/Fを作成

## レビューポイント
- pathは問題なさそうか
- Request/Responseは本質的に同一だと思われるため、管理者の認証と共通としたが問題ないか?

## 動作確認状況
- openapi.jsonの生成を確認
2023-04-12 04:36:20 +00:00
湯本 開
bfa7fc4f76 Merged PR 68: API実装(I/F)
## 概要
[Task1590: API実装(I/F)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1590)

- ラフスケッチを元にAPI I/Fを実装し、openapi.jsonを生成
- ラフスケッチ時はユーザー登録のリクエストに `authorMetadata` のような拡張可能な形式で考えていた部分を、単に煩雑になるだけと判断して素のAuthorID/TypistGroupIDに変更
- `@POST()/@GET()` の定義箇所をメソッド定義が書かれている行に近づけるよう修正

# レビュー対象外
- メール認証APIは[別Task](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_workitems/edit/1599)に分割してそちらで対応予定のため今回は未実装

## レビューポイント
- 認証情報の取り方は `@Req()` と `@Body()` を両方引数に定義する方法で問題なさそうか
- ラフスケッチ時からリクエストボディの構造が変わったが問題ないか
- APIの引数の型などは問題ないか

## 動作確認状況
- ビルドが通ることを確認
2023-04-11 04:03:33 +00:00
makabe.t
bd4aaa8ae1 Merged PR 63: API実装(メール認証)
## 概要
[Task1497: API実装(メール認証)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1497)

- メール認証APIとテストを実装しました。

- IDトークンの型を現状と合わせて修正しました
  - `family_name`と`given_name`を削除しました。
- auth.serviceのテストも併せて修正しました。
  - テストケースのIDトークンを環境変数の鍵で生成するように修正しました。

## レビューポイント
- DBのユーザを検証済みにする処理について、トランザクション内で取得と更新をしていますがトランザクションの使い方として問題ないでしょうか?
- 本APIで使用するカスタムエラーを`common/error/types`に暫定的においていますがどこに配置するのが適切でしょうか?
  - `common/error/types`に配置する、もしくは`common`配下にカスタムエラー用のフォルダを作成してその下に配置するのが良いかと考えています。
- テストのモックでエラーを発生させる際に、テストケース内でエラーを設定していますがモックファイル内でエラー用のモックを設定するべきでしょうか?

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
  - テストが通ることを確認
2023-04-10 04:44:16 +00:00
湯本 開
9f5252baf8 Merged PR 56: API実装(アカウント登録)
## 概要
[Task1496: API実装(アカウント登録)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1496)

- アカウント登録のAzureAD B2Cへのユーザー作成部分以外について実装
- migration SQLに足りない要素があった箇所を修正(default追加)
- 各種環境変数を追加
- 秘密鍵/公開鍵を取得する方法を環境変数に変更(KeyVaultからWebAppsの機能で環境変数へ流し込む想定)

## レビューポイント
- 実装方法として問題がありそうな箇所が存在しないか
- 可読性の低い箇所が存在しないか
- Moduleの分け方、つなげ方などは問題ないか
- ラフスケッチと違い、Account作成と管理者ユーザー作成を同一トランザクションで行うよう修正したが問題ないか

## 動作確認状況
- メール送信以外はローカルで確認、メール送信部分は未確認
2023-03-29 03:55:44 +00:00
湯本 開
dfd9abc1c3 Merged PR 54: API実装(I/F)
## 概要
[Task1494: API実装(I/F)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1494)

- POST /accounts のAPIを実装
- POST /users/confirm のAPIを実装
- 上記APIからopenapiを実装

## レビューポイント
- ラフスケッチ時から変更になった箇所があるが問題ないか
  - ディーラーIDは省略可能かつIDを指定するべきなのでnumber?に型を変更
  - 管理者ユーザー用に同意済み利用規約バージョンを受け付けるようにした
  - reCAPTCHAを想定して事前にreCAPTCHA用トークンを受け付けるようにした

## 動作確認状況
- openapiが生成されることを確認
2023-03-23 07:56:18 +00:00