-
Notifications
You must be signed in to change notification settings - Fork 0
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 Admin)を追加する #1741
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* 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仕様書の更新
* カタログアイテムのdtoの引数を修正 * アプリケーションサービスの更新メソッドの引数を修正 * カタログアイテムのgetのdtoのフィールドに行バージョンを追加 * API仕様の軽微な修正 * javadocの誤記を修正 * PagedListOfCatalogItemResponseのフィールドをMarisに合わせて修正 * カタログアイテムの削除処理と更新処理のアクションメソッドの引数を修正 * PagedListOfCatalogItemResponseのtotalPagesの計算を商と余りを用いて行うよう変更
* カタログアイテムのdtoの引数を修正 * アプリケーションサービスの更新メソッドの引数を修正 * カタログアイテムのgetのdtoのフィールドに行バージョンを追加 * API仕様の軽微な修正 * javadocの誤記を修正 * 楽観ロック対応のタスクの不要な記述を削除 * ユーザロールを複数返すように変更 * DTOクラス群の命名を変更 * カタログアイテムを削除に楽観同時実行制御を実装 * 不足しているAPIレスポンスを追加 * ユーザーロールを定数で管理 * PagedListOfCatalogItemResponseの変更分をマージ * adminのAPI仕様書を更新 * adminのPagedListOfCatalogItemResponseをPagedListOfGetCatalogItemResponseに変更 * adminとconsumerのdependabot version updateの設定を追加 * 指摘事項への対応
* フロントエンドアプリケーションのソース一式を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]>
* カタログアイテムのdtoの引数を修正 * アプリケーションサービスの更新メソッドの引数を修正 * カタログアイテムのgetのdtoのフィールドに行バージョンを追加 * API仕様の軽微な修正 * javadocの誤記を修正 * 楽観ロック対応のタスクの不要な記述を削除 * ユーザロールを複数返すように変更 * DTOクラス群の命名を変更 * カタログアイテムを削除に楽観同時実行制御を実装 * 不足しているAPIレスポンスを追加 * ユーザーロールを定数で管理 * PagedListOfCatalogItemResponseの変更分をマージ * adminのAPI仕様書を更新 * adminのPagedListOfCatalogItemResponseをPagedListOfGetCatalogItemResponseに変更 * adminとconsumerのdependabot version updateの設定を追加 * アプリケーションサービスの存在チェックをドメインサービスに移動 * ドメインサービスのUTの追加 * カタログアイテムの追加処理にブランドとカテゴリの存在チェックを追加 * アプリケーションサービスのUTでアクション内でリテラルを使用しないように変更
KentaHizume
changed the title
楽観同時実行制御・認可を行うサンプルアプリ(Dressca Admin)を追加する
(作成中)楽観同時実行制御・認可を行うサンプルアプリ(Dressca Admin)を追加する
Dec 20, 2024
KentaHizume
added
CI/CD
Github Actionsなどの修正
target: Dressca
サンプルアプリケーションDresscaに関係がある
labels
Dec 20, 2024
This was
linked to
issues
Dec 20, 2024
Closed
* OpenAPI 仕様書の相対パスを修正 * Consumer の API クライアントを再生成 * consumerのmockをmaia-maris間で共通化 * Admin の API クライアントを再生成 * Adminのフロントエンドのコードを最新と同期
KentaHizume
changed the title
(作成中)楽観同時実行制御・認可を行うサンプルアプリ(Dressca Admin)を追加する
楽観同時実行制御・認可を行うサンプルアプリ(Dressca Admin)を追加する
Dec 20, 2024
.../src/main/java/com/dressca/applicationcore/applicationservice/CatalogApplicationService.java
Outdated
Show resolved
Hide resolved
.../src/main/java/com/dressca/applicationcore/applicationservice/CatalogApplicationService.java
Outdated
Show resolved
Hide resolved
...b-csr/dressca-backend/web-admin/src/test/java/com/dressca/web/admin/WebApplicationTests.java
Show resolved
Hide resolved
...backend/web-consumer/src/main/java/com/dressca/web/consumer/controller/AssetsController.java
Outdated
Show resolved
Hide resolved
1 task
.../test/java/com/dressca/applicationcore/applicationservice/CatalogApplicationServiceTest.java
Outdated
Show resolved
Hide resolved
...ressca-backend/web-admin/src/main/java/com/dressca/web/admin/security/WebSecurityConfig.java
Fixed
Show fixed
Hide fixed
...-backend/web-consumer/src/main/java/com/dressca/web/consumer/security/WebSecurityConfig.java
Fixed
Show fixed
Hide fixed
1 task
tsuna-can-se
approved these changes
Jan 7, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
この Pull request で実施したこと
Dressaca Admin について、フロントエンド・バックエンド間の結合テストとconsumerへの無影響確認を実施のうえ main へマージします。
確認ポイント
下記の点について再査願います。
Admin
バックエンドのルートプロジェクトで
./gradlew web-admin:bootRunDev
、フロントエンドのルートプロジェクトでnpm run dev:admin
を実行してアプリケーションを立ち上げ、下記コメントの「レビュアー向け確認ケース」を確認ください。Consumer
バックエンドのルートプロジェクトで
./gradlew web-consumer:bootRunDev
、フロントエンドのルートプロジェクトでnpm run dev:consumer
を実行してアプリケーションを立ち上げ、買い物かごへのアイテム追加~数量の変更~ログイン~注文の確定までのユースケースが問題なく実行できることを確認ください。この Pull request では実施していないこと
フロントエンドのmockを使用した異常系ケースの確認についてはMarisで実施済みのため省略しました。
Issues や Discussions 、関連する Web サイトなどへのリンク
上述の通りです。