524 Commits

Author SHA1 Message Date
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
masaaki
21695a6590 Merged PR 97: API I/F実装(ライセンス注文登録API)
## 概要
[Task1681: API I/F実装(ライセンス注文登録API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1681)

- 元PBIへのリンク(内容・目的などはそちらにあるはず)
 [プロダクト バックログ項目 1221: ライセンスを注文したい](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_workitems/edit/1221)

- 何をどう変更したか、追加したライブラリなど
 ラフスケッチに基づき、ライセンス注文登録APIのI/F実装とopenapi化を行いました。

- このPull Requestでの対象/対象外
 変更分すべてが対象になります

- 影響範囲(他の機能にも影響があるか)
 無し

## レビューポイント
- Swagger UI上でテスト実行すると、正常時のレスポンスコードが200ではなく201となります。
湯本さんが実施されたユーザ追加のAPI I/F実装の動画を見ると、その時も201となっていたので、そのまま進めましたが、もし問題ある場合は指摘お願いします。

## UIの変更
- 無し

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

## 補足
- 相談、参考資料などがあれば
2023-05-12 01:00:10 +00:00
oura.a
3f16e84317 Merged PR 88: usersテーブルにAuto Renew/License Alert/Notificationの列を追加する
## 概要
Task1619: usersテーブルにAuto Renew/License Alert/Notificationの列を追加する

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%207-1?workitem=1619
ユーザテーブルへ「autoRenew、licenseAlert、notification」のカラムを追加するマイグレーションファイルを作成

レビューポイント
カラム定義が認識通りであるか
既存処理には定義追加以外の影響はないと判断したが、問題ないか
(user.entityとusers.repository.serviceへの定義追加は
タスク1593「API実装(ユーザー登録)」で事前に行っていました。)

UIの変更
なし

動作確認状況
ローカルDBでマイグレーションを実施。
カラムの追加と「autoRenew、licenseAlert、notification」が未指定でも「1」となることを確認。

補足
なし
2023-05-11 09:08:16 +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
iwata
94ab0e5b0d Revert "ラフスケッチを元に新規APIをNestJS上で実装する"
This reverts commit 12cd9c5a035efa493d4e85fd7ed6f696da8dc520.
2023-05-11 13:54:35 +09:00
iwata
dac315c8cb Revert "openapiを生成する"
This reverts commit 95017df699d24471d5c3a0594f2a47599c9e2134.
2023-05-11 13:54:00 +09:00
iwata
95017df699 openapiを生成する 2023-05-11 13:41:40 +09:00
iwata
12cd9c5a03 ラフスケッチを元に新規APIをNestJS上で実装する 2023-05-11 10:52:48 +09:00
makabe.t
904d65780b Merged PR 96: 外部連携APISwaggerエラー修正
## 概要
[Task1732: 外部連携APISwaggerエラー修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1732)

- Swaggerの構文で不要な文言が残ったままでしたので削除しました。

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

## UIの変更
無し

## 動作確認状況
- ローカルで確認
  - Swaggerでエラーがないことを確認
2023-05-10 23:54:20 +00:00
makabe.t
a740ec3c36 Merged PR 95: (最最最優先)fileSizeをstringからnumberに修正
## 概要
[Task1728: (最最最優先)fileSizeをstringからnumberに修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1728)

- 外部連携APIのパラメータについてファイルサイズをnumberとするように修正しました。
- 外部連携API、音声ファイルアップロード完了APIに401認証エラーを追加しました。

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

## UIの変更
無し

## 動作確認状況
- ローカルSwaggerで確認
2023-05-10 07:25:59 +00:00
makabe.t
8ccc2a82e8 Merged PR 92: OptionItem対応
## 概要
[Task1701: OptionItem対応](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1701)

- 以下のAPIでOptionItemを配列で持つように修正しました。
  - 音声ファイルアップロード完了API
  - タスク情報取得API

## レビューポイント
- 対応箇所に過不足はないか
- 対応内容として適切か

## UIの変更
無し

## 動作確認状況
- ローカルでSwagger確認
2023-05-09 06:16:44 +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
085f41134a Merged PR 89: IF実装(音声ファイル、タスク情報取得API)
## 概要
[Task1647: IF実装(音声ファイル、タスク情報取得API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1647)

- 以下の外部連携APIのIFを実装しました
  - 音声ファイル、タスク情報取得API
- blob、taskフォルダにあったAPI定義をfilesフォルダに集めました。

## レビューポイント
- フォルダの変更に問題はないか
- 音声ファイル、タスク情報取得APIのパスを`GET /files/audio/task-info`としましたがAPIのパスとして適切でしょうか?

## UIの変更
- なし
## 動作確認状況
- ローカルのSwaggerで確認
2023-04-28 08:12:05 +00:00
saito.k
0bcb0b071b Merged PR 86: IF実装(ステータス変更要求API)
## 概要
[Task1645: IF実装(ステータス変更要求API/初回音声ファイル情報)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1645)

- ステータス変更要求APIのIF実装
  - 使用目的ごとにAPIを作成
- OpenAPI.json生成

## レビューポイント
- API仕様詳細では引数にファイルIDを渡すように記載されていたが、タスクIDを受け取るようにした。
  - タスクIDで問題ないと思っていますが、認識あってますでしょうか?
- 返却するエラーの種類は足りているか

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

## 動作確認状況
- Swagger UIと生成したOpenAPI.jsonで確認

## 補足
- 相談、参考資料などがあれば
2023-04-26 06:32:50 +00:00
makabe.t
728bd6dfeb Merged PR 87: IF実装(テンプレートファイルダウンロード先取得API/次ファイル情報取得要求API)
## 概要
[Task1646: IF実装(テンプレートファイルダウンロード先取得API/次ファイル情報取得要求API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1646)

- 以下の外部連携APIのIFを実装しました。
  - テンプレートファイルダウンロード先取得API
  - 次ファイル情報取得要求AP

## レビューポイント
- 次ファイル情報取得要求APIについてFilesフォルダを掘って新規に追加したがフォルダ構成に問題はないか。
- IFの応答ステータスは適切か。
- リクエスト/レスポンスは想定通りか

## UIの変更
- なし

## 動作確認状況
- ローカルで確認Swaggerで確認
2023-04-25 01:56:40 +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
saito.k
0a970e814f Merged PR 76: API実装(I/F)
## 概要
[Task1576: API実装(I/F)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1576)

- sas発行APIのIFを実装
  - アップロード用のSAS発行API
    - GET /blob/uploadSas
  - ダウンロード用のSAS発行API
    - GET /blob/downloadSas
- notification関連のフォーマット修正
- notification関連でlintエラーが出ていた箇所を修正
- openapi.jsonを生成するコマンドを使用できるように修正

## レビューポイント
- レスポンスとして返却する内容に不足は無いか
- URIはこれで良さそうか

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

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

## 補足
- 相談、参考資料などがあれば
2023-04-14 01:08:32 +00:00