363 Commits

Author SHA1 Message Date
湯本 開
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
saito.k
ee2e8dbd5d Merged PR 64: デバイス登録API実装
## 概要
[Task1571: デバイス登録API実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1571)

- NotificationHubへのデバイス登録APIを実装
  - NotificationHubへの接続
  - 登録処理

## レビューポイント
- ディレクトリ構成に問題は無いか

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

## 動作確認状況
- ローカルでNotificationHubに接続できるところまで確認

## 補足
- 返却するエラーやサーバー側で設定する部分の登録情報については仮です。
  - 「プロダクト バックログ項目 1389: デスクトップアプリ/モバイルアプリに様々な通知をしたい」で実装・設計する想定
2023-04-10 00:41:32 +00:00
saito.k
382bb4e25f Merged PR 62: デバイス登録APIのIF実装
## 概要
[Task1570: デバイス登録APIのIF実装](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1570)

- NotificationHubへのデバイス登録を行うAPIのIFを実装
  - MSへの問い合わせで想定していた引数で概ね問題ないとの回答
- OpenAPI生成関数が動作しなくなっていたので削除
  - 生成するためにはServiceごとにモックを作成しないといけないため修正コストが高すぎると判断

## レビューポイント
- Requestのプロパティについて認識違いは無いか
- 外部連携用のAPIも他のAPIと同様の場所に配置したが問題ないか
- 返却するステータスコードはこれで良いか?
  - 登録の成功は201?
  - エラー時のステータスコードの種類に過不足は無いか

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

## 動作確認状況
- OpenAPIを生成して確認

## 補足
2023-04-07 01:05:28 +00:00
makabe.t
0099614a5f Merged PR 58: API実装(アカウント登録/Azure AD B2C)
## 概要
[Task1550: API実装(アカウント登録/Azure AD B2C)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1550)

- アカウント登録APIでAzure ADB2Cにユーザを登録する処理を追加しました。
  - GraphAPIで登録処理をしています。

## レビューポイント
- ADB2Cへ登録する情報は認識通りか
- ADB2CへのGraphAPI接続のためにADB2Cテナントにアプリを追加しているが認証として問題ないか。
  - 環境変数にアプリの情報を設定しています
    - ADB2C_TENANT_ID=xxxxxxxx
    - ADB2C_CLIENT_ID=xxxxxxxx
    - ADB2C_CLIENT_SECRET=xxxxxxxx

## UIの変更
無し

## 動作確認状況
- ローカルで確認
  - ADB2C、DBに設定項目が追加されていることを確認
2023-04-05 09:22:50 +00:00
makabe.t
731c633189 Merged PR 57: ログインAPIを修正する
## 概要
[Task1504: ログインAPIを修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1504)

- ログイン時にIDトークンをもとにメールアドレスで認証済みのユーザかをDBから取得して判定する処理を追加しました

## レビューポイント
- IDトークンのSubをもとにUserテーブルの`external_id`でユーザを特定しているが利用法として適切か
- DBからのクエリに問題はないか
- ※アカウント登録の処理が含まれていますが、以下の変更についてご確認をお願いします。
  - feature/auth/*
  - repositories/users/*
  - common/error

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-03-31 07:46:56 +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
湯本 開
c1ed541d87 Merged PR 4: タスク 1385: API実装(認証/トークン発行)
## 概要
[Task 1385](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_workitems/edit/1385)
- IDトークンを受け取り、リフレッシュトークンとアクセストークンを発行するAPIを実装
- リフレッシュトークンを受け取り、アクセストークンを発行するAPIを実装
  - アクセストークン、リフレッシュトークンの中身は中身を使用するPBIが存在しないので仮のもの

## レビューポイント
- 本PBIで必要な範囲の機能を十分持っているか
- コードに不足部分、問題点などはなさそうか
- テスト項目は妥当か
- アクセストークン、リフレッシュトークンの中身はまだ仮で問題ないか

## 動作確認状況
- ローカルで動作確認
2023-03-07 23:35:53 +00:00
makabe.t
41f0213fe9 Merged PR 1: タスク 1359: API実装(認証/IDトークン検証)
## 概要
[タスク 1359: API実装(認証/IDトークン検証)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_workitems/edit/1359)

- IDトークンを受け取って内容を検証し、デコードしたペイロードを返すサービスを実装しました。

## レビューポイント
- サービスの処理の流れが認識とあっているか。
- ADB2CのAPI呼び出しを別サービスにしているが問題ないか
- 公開鍵の変換処理を別サービスに切り出しているが構成に問題はないか。
- トークンの検証をエラーごとに処理しているがエラー内容は認識通りか

## UIの変更
- なし

## 動作確認状況
- テストが通ることを確認

# 備考
- IDトークンを検証して中身を返すまでの実装です。
2023-03-07 01:30:13 +00:00
斎藤 快斗
c82d0363ac Merged PR 6: タスク 1362: API実装(I/F)
## 概要
[Task: 1362](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%202_2?workitem=1362)

- 以下のIFを実装
  - AzureADのidトークンを受け取り、アクセストークン・リフレッシュトークンを返却するAPI
  - リフレッシュトークンを受け取り、アクセストークンを返却するAPI
- エラー時のレスポンスを作成

## レビューポイント
- 各APIのリクエスト・レスポンスの型

## UIの変更
- なし

## 動作確認状況
- SwaggerUIでAPIを確認

## 補足
2023-02-24 06:01:33 +00:00
斎藤 快斗
3b4b3c59e7 Merged PR 4: API実装のためのディレクトリを構成
## 概要
[Task: 1358](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%202_2?workitem=1358)

- API実装を行うためのベースとなる実装を行いました。
  - ディレクトリ構成
  - ビルドの設定
  - openapi.jsonの配置場所
  - openapi.jsonの生成コマンド作成

## レビューポイント
- ベース実装として足りているか
- openapi.jsonを生成するコードの配置場所は`src/api/generate.ts`で良いか

## UIの変更
- なし

## 動作確認状況
- ローカルで`/health`が200 OKを返却することを確認

## 補足
2023-02-20 08:12:36 +00:00