Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dresscaに管理アプリ(フロントエンド)を追加する #1582

Conversation

KentaHizume
Copy link
Contributor

@KentaHizume KentaHizume commented Nov 20, 2024

この Pull request で実施したこと

ルートプロジェクトdressca-frontendにadminワークスペースを追加し、管理アプリケーションを追加しました。
カタログアイテムに関するCRUD機能と、認可の機能を持ちます。

確認ポイント

  • dressca-backend配下の差分については別PRにてレビュー中のため、確認不要です。

モチベーション

  • 楽観同時実行制御を行うユースケースを実現するためです。
  • 機能の実行に対して認可を行うユースケースを実現するためです。
  • 複数のアプリケーションを1つのレポジトリで開発するユースケースを実現するためです。

画面別機能

アイテム一覧画面

  • アイテムを一覧表示できます。

アイテム追加画面

  • アイテムをカタログに追加できます。

アイテム編集画面

  • 対象のアイテムの情報を更新できます。
    • アイテムの更新時、行バージョンを照合して楽観同時実行制御をします。
  • 対象のアイテムをカタログから削除できます。

ログイン画面

  • ログインできます。

画面ヘッダー

  • ログイン中のユーザーのユーザー名とロールを表示します。
  • ログアウトできます。

モック

  • mswを用いて、APIのモックを実装しました。

テスト

  • モックを用いて、View単位の結合テストスイートを実装しました。

CI/CD

  • adminワークスペースを対象とした新規ワークフローを追加しました。
  • adminアプリについてopenapi-generatorの更新の検知対象にしました。

アーキテクチャ

  • カタログアイテムについてはストアを使用せず、各Viewごとにデータを保持するように実装しています。

この Pull request では実施していないこと

Issues や Discussions 、関連する Web サイトなどへのリンク

KentaHizume and others added 25 commits November 20, 2024 17:09
prodビルド用のコマンドがワークスペースになかったため、追加
…ントエンドアプリケーションの開発
…into develop/admin/フロントエンドアプリケーションの開発
@KentaHizume KentaHizume changed the title 管理アプリ(フロントエンド)の追加 Dresscaに管理アプリ(フロントエンド)を追加する Nov 26, 2024
@KentaHizume KentaHizume self-assigned this Nov 26, 2024
@KentaHizume KentaHizume added CI/CD Github Actionsなどの修正 target: Dressca サンプルアプリケーションDresscaに関係がある labels Nov 26, 2024
@KentaHizume KentaHizume added this to the v1.0.0 milestone Nov 26, 2024
Copy link
Contributor Author

@KentaHizume KentaHizume left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@1nu1taichi
ご指摘いただいた点について対応が完了しましたので、再度お目通しお願いいたします。

@KentaHizume
Copy link
Contributor Author

KentaHizume commented Nov 28, 2024

本PRにはバックエンド側の修正の差分が含まれているため、
こちらのマージ後にadmin-mainにマージします。

@KentaHizume
Copy link
Contributor Author

下記の2件がdevelop/admin/dressca-admin-mainにマージされたら、
自動生成の再実行と、クライアントコードの更新をする。

…' into develop/admin/フロントエンドアプリケーションの開発
…' into develop/admin/フロントエンドアプリケーションの開発
@KentaHizume
Copy link
Contributor Author

下記2件がマージされ、バックエンドのコードに差分がないことを確認したため、
一旦dressca-admin-mainにマージいたします。

自動生成の再実行と、クライアントコードの更新は差分を確認しやすくするため別PRを作成いたします。

@KentaHizume KentaHizume merged commit 0a56ce9 into develop/admin/dressca-admin-main Dec 18, 2024
1 check passed
tsuna-can-se pushed a commit that referenced this pull request Jan 7, 2025
* Dressca管理アプリ(バックエンド)の作成 (#1580)

* web-csrのbackendにweb-adminプロジェクトとweb-consumerプロジェクトを追加

* web-adminとweb-consumerの共有部分をwebに移動

* web-adminから不要なファイルを削除

* webにcontrolleradviceのテストメソッドを追加

* カタログアイテムのCRUD処理を行うリポジトリインターフェースと実装クラスの追記

* MyBatisを用いたCRUD処理を自動生成されたコードに変更

* ロガーや認証認可を除いたCRUD処理の実装

* APIの定義に合わせてCRUD処理と関連する箇所を修正

* 認証・認可関連のクラスを実装

* 認可をPreAuthorizeアノテーションで管理するように変更

* 開発環境でのみダミーユーザが注入されるように変更

* ユーザのセッション情報を管理するクラスを追加

* ログ出力の中身の詰め込みとそれに伴う例外クラスの追加

* 楽観同時実行制御用のrow_versionカラムをcatalog_itemsに追加し、myBatis generatorで生成したクラスを追加

* 認証認可に関するアノテーションの位置と種類を変更

* 楽観同時実行制御の実装

* コメントアウトやファイルの場所の変更

* 楽観ロックエラーの実装とコントローラのAPI定義の修正

* CatalogManagementApplicationServiceの単体テストの追加

* controllerAdviceのフォルダ構成の変更

* webをadminとconsumerに分割した際に生じた差分(主にCORS構成)を修正

* 権限エラーと楽観ロックエラーのメッセージをプロパティファイルに定義

* 例外ハンドリングにアノテーションによる認証エラーと認可エラーを追加

* ログレベルを適切なものに変更

* 更新用のコマンドオブジェクトを削除

* フォーマットのルールを他メソッドに合うよう修正

* api定義の切り分け

* CRUD処理をドメインサービスに集約

* 更新処理をMyBatis Generatorで生成されたプログラムを用いたものに変更

* h2データベースの起動設定の変更

* launch.jsonにadminとconsumerを追記

* h2サーバーの設定を行うコンポーネントのDIをnull許容に変更する

* 単体で使用しないためlaunch.jsonからwebを削除

* 単体テストのメソッド名の命名を統一

* プログラムの過不足の適用、ドメインサービスの更新処理のメソッド名を変更

* ユーザのセッション情報の実装クラスのメソッドを適切なものに修正

* DummyUserInjectionFilterのJavaDocコメントを追記

* 楽観同時実行制御のバージョンカラムの型をDBではTIMESTAMP型、JavaではLocalDateTimeに変更

* MyBatis Generatorで生成したプログラムを楽観同時実行制御対応させるためのタスクを追加

* 自動生成したマッパーを楽観ロック対応させるタスクにおいて列やディレクトリの柔軟性を向上

* h2サーバー起動用のクラスをインフラから削除し、adminとconsumerに新規追加

* CatalogManagementApplicationServiceとCatalogApplicationServiceに統合

* myBatisGeneratorConfigの誤字を訂正

* 楽観ロックエラーと権限エラーを共通エラーハンドラでキャッチするように変更

* H2ServerConfigをH2ServerLauncherに変更

* CatalogApplicationServiceのgetCatalogItemsメソッドの処理をprivateの共通処理からadminとconsumerで直接記述するように変更

* カタログアイテムの取得処理に認可チェックを追加

* コントローラの認可チェックを全てのアクションメソッドに付与するよう変更し、併せてAPI定義も修正

* APIのdescriptionの更新に伴うAPI仕様書の更新

* PagedListOfCatalogItemResponseのフィールドに総ページ数、前ページの有無、後ページの有無を追加 (#1610)

* カタログアイテムのdtoの引数を修正

* アプリケーションサービスの更新メソッドの引数を修正

* カタログアイテムのgetのdtoのフィールドに行バージョンを追加

* API仕様の軽微な修正

* javadocの誤記を修正

* PagedListOfCatalogItemResponseのフィールドをMarisに合わせて修正

* カタログアイテムの削除処理と更新処理のアクションメソッドの引数を修正

* PagedListOfCatalogItemResponseのtotalPagesの計算を商と余りを用いて行うよう変更

* 管理アプリ(バックエンド)を策定したAPI仕様に沿って修正 (#1594)

* カタログアイテムのdtoの引数を修正

* アプリケーションサービスの更新メソッドの引数を修正

* カタログアイテムのgetのdtoのフィールドに行バージョンを追加

* API仕様の軽微な修正

* javadocの誤記を修正

* 楽観ロック対応のタスクの不要な記述を削除

* ユーザロールを複数返すように変更

* DTOクラス群の命名を変更

* カタログアイテムを削除に楽観同時実行制御を実装

* 不足しているAPIレスポンスを追加

* ユーザーロールを定数で管理

* PagedListOfCatalogItemResponseの変更分をマージ

* adminのAPI仕様書を更新

* adminのPagedListOfCatalogItemResponseをPagedListOfGetCatalogItemResponseに変更

* adminとconsumerのdependabot version updateの設定を追加

* 指摘事項への対応

* Dresscaに管理アプリ(フロントエンド)を追加する (#1582)

* フロントエンドアプリケーションのソース一式をmainにマージ

* adminワークスペースを追加

* admin用のnpmスクリプトをルートプロジェクトに追加
prodビルド用のコマンドがワークスペースになかったため、追加

* admin用のCIワークフローを追加

* #1236 を反映

* openapi-generatorの自動生成コードを最新化

* [email protected]にアップデート

* カタログアイテムのdtoの引数を修正

* アプリケーションサービスの更新メソッドの引数を修正

* カタログアイテムのgetのdtoのフィールドに行バージョンを追加

* API仕様の軽微な修正

* javadocの誤記を修正

* Revert "[email protected]にアップデート"

This reverts commit 389549b.

* Revert "openapi-generatorの自動生成コードを最新化"

This reverts commit e001e14.

* OpenAPI仕様書のパスを正しいものに修正

* クライアントコードを再生成

* PagedListOfCatalogItemResponseのフィールドをMarisに合わせて修正

* mockの不完全な実装部分を削除

* devモードのエンドポイントのURLを修正

* vitestのmswの設定についてデバッグに使用していたものを削除

* カタログアイテムの参照、追加、更新、削除について自動テストを実装

* adminのコードを新しい仕様書に合わせて自動生成

* コードにコメントを追加。

* 不足しているコメントを追加。

* コメントを改善

* Adminについてopenapi-generatorのバージョンアップを確認する

* リダイレクト漏れを修正
わかりにくい箇所を修正

* [email protected]にアップデート

* Promise.thenで非同期処理を待っていた箇所を、awaitで待つように修正

* 不適当なメソッド命名を修正

* カテゴリとブランドの取得をサービスクラスに委譲するリファクタを実施

---------

Co-authored-by: yoshidakenji <[email protected]>

* アプリケーションサービス内の存在チェックをドメインサービスに移動する (#1720)

* カタログアイテムのdtoの引数を修正

* アプリケーションサービスの更新メソッドの引数を修正

* カタログアイテムのgetのdtoのフィールドに行バージョンを追加

* API仕様の軽微な修正

* javadocの誤記を修正

* 楽観ロック対応のタスクの不要な記述を削除

* ユーザロールを複数返すように変更

* DTOクラス群の命名を変更

* カタログアイテムを削除に楽観同時実行制御を実装

* 不足しているAPIレスポンスを追加

* ユーザーロールを定数で管理

* PagedListOfCatalogItemResponseの変更分をマージ

* adminのAPI仕様書を更新

* adminのPagedListOfCatalogItemResponseをPagedListOfGetCatalogItemResponseに変更

* adminとconsumerのdependabot version updateの設定を追加

* アプリケーションサービスの存在チェックをドメインサービスに移動

* ドメインサービスのUTの追加

* カタログアイテムの追加処理にブランドとカテゴリの存在チェックを追加

* アプリケーションサービスのUTでアクション内でリテラルを使用しないように変更

* (Dressca)Open API 仕様書の更新に追従する (#1721)

* OpenAPI 仕様書の相対パスを修正

* Consumer の API クライアントを再生成

* consumerのmockをmaia-maris間で共通化

* Admin の API クライアントを再生成

* Adminのフロントエンドのコードを最新と同期

* dependabot.ymlの不要なバージョン更新検索を削除

* 登録用のカタログアイテムを作成するメソッドを追加

* WebApplicationTestのcontextLoadsクラスにDisplayNameを追記

* DisplayNameのimport文を追記

* web-adminとweb-consumerの不要なテストクラスを削除

* モックのHTTPステータスコードについてaxiosから提供されるEnumを使用するように修正

* フロントエンドの自動テストスイートを改善して[email protected]にアップデート
(AlesInfiny/maris#2169 を反映)

* APIクライアントのステータスコードをEnumに修正

* 自動生成された不要なREADMEファイルを削除

* CatalogApplicationServiceのカタログアイテムの一覧取得メソッドの命名をbyからforに変更

* 例外のmessageの抜けを修正

* samples/web-csr/dressca-frontend/consumer/src/api-client/index.ts の競合を解決

* package-lock.jsonの競合を解決

* Revert "package-lock.jsonの競合を解決"

This reverts commit 51a4946.

* Revert "samples/web-csr/dressca-frontend/consumer/src/api-client/index.ts の競合を解決"

This reverts commit bfaf778.

* マージしたい対象をマージ元のブランチからcheckout

* 競合を解決

* 競合を解決

* Revert "競合を解決"

This reverts commit 393ffb1.

* Revert "競合を解決"

This reverts commit 6366b27.

* Revert "マージしたい対象をマージ元のブランチからcheckout"

This reverts commit 501fb96.

* Adminでは使っていないため、すべてのカテゴリ・ブランドを表すレコードを追加する処理を削除。
フォームレベルバリデーションのスキーマ定義について、カタログアイテムのnameとdescriptionをそれぞれitemNameとitemDescriptionにリネーム。

* コメントの誤りを修正

* メッセージ管理方針の変更をadminに取り込み

* API クライアントの設定ファイルの競合箇所を main から checkout して再修正

* 一度 main のpackage-lock.json をcheckoutして戻します。

* admin 分のパッケージをpackage-lock.jsonに記録します

* ログメッセージの誤記を修正

* Javaファイルの不要な空行を削除

* AssetsControllerの不要な空行を削除

* ログ出力のフォーマットが崩れている部分の修正

* 管理アプリにconsumerの変更を反映

* 管理アプリのフロントエンドのCIについて明示的に権限を付与するように修正

---------

Co-authored-by: kenjiyoshid-a <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI/CD Github Actionsなどの修正 target: Dressca サンプルアプリケーションDresscaに関係がある
Projects
None yet
3 participants