-
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
[Consumer]削除済みのカタログアイテムを参照した場合に適切にハンドリングする #1780
Comments
現在の挙動調査
買い物かご情報取得 |
【解決】
var actionName = ActionNameHelper.GetAsyncActionName(nameof(this.GetBasketItemsAsync)); public async Task<IActionResult> PostBasketItemAsync(PostBasketItemsRequest postBasketItem)
{
postBasketItem.CatalogItemId.ThrowIfNull();
postBasketItem.AddedQuantity.ThrowIfNull();
var buyerId = this.HttpContext.GetBuyerId();
await this.service.AddItemToBasketAsync(buyerId, postBasketItem.CatalogItemId.Value, postBasketItem.AddedQuantity.Value);
var actionName = ActionNameHelper.GetAsyncActionName(nameof(this.GetBasketItemsAsync));
return this.CreatedAtAction(actionName, null);
} |
数量が0のカタログアイテムを買い物かごから削除するメソッド 削除済みアイテムが複数かごに入っているパターンでは、 SetBasketItemsQuantitiesAsyncとAddItemToBasketAsyncで使われている basket.AddItem(catalogItemId, catalogItem.Price, addedQuantity);
basket.RemoveEmptyItems();
await this.basketRepository.UpdateAsync(basket, cancellationToken);
scope.Complete(); |
GetBasketItemsAsyncをGETでAPIコールしたときに、 |
概要
Dressca-Adminは、カタログアイテムのマスタ情報(CatalogItemsテーブル)に対するCRUD機能を持つ。
下記のようなシナリオにおいて、Consumerから削除済みのカタログアイテムを参照した場合の挙動を定め、
適切なハンドリングを実装する必要がある。
詳細 / 機能詳細(オプション)
下記のコメントで検討していた内容をissue化。
#1453 (comment)
例
たとえば、現在は下記のようなシナリオを実行した場合、
注文を行った際にハンドリングしていない例外が発生して500エラーが返され、
買い物かご内に削除済みの商品が残ったままになってしまい、
ユーザー側で解決不可能な状態が発生してしまう。
対象ユースケース
CatalogItemsテーブルを参照するユースケースは下記の6つ。
下記の6つのケースについて、バックエンドとフロントエンドであるべき挙動を定め、実装する必要がある。
完了条件
The text was updated successfully, but these errors were encountered: