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
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
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
湯本 開
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
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
湯本 開
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