- クリーンアーキテクチャと言いつつそこまで業務分析を厳密に行ってはいないです。
- セキュリティはガバガバです。
- サーバサイドで注文レコードを作るだけです。
注文APIと商品一覧APIだけ作成します。
cookieで持つ
商品idと商品名を返す 個数(在庫)を持っている
- 注文レコードを作る
- ユーザーid, 商品, 個数を受け取る
- 在庫がある時だけ注文を作成する
- 注文を確定すると在庫を減らす
- 配送先はユーザーごとに持っている
user_id
user_name
user_address
order_product_items
- product_id
- product_name
- count
名前と住所を持っている 名前 注文者太郎 住所1* 千葉県 住所2* 松戸市六高台 33-4 住所3 なんとかアパート 101 name address_1 address_2 address_3
ユーザーごとに持っている
- 配送元 name address_1 address_2 address_3
deliveries
- from_address
- to_address
- price
- 配送元
- 配送先
- 送料
- ビジネスロジックをすべてControllerに実装する
- ビジネスロジックをInteractorに切り出す
- InteractorとはUseCaseの実装
- 他の言語ではUserCaseをinterfaceで作ってInteractorで実装する
- Interactor gemを使ってみる
- 使えそうな機能
- context
- なにかの業務Interactor.call(user)
- この引数
- Around Hooks
- Transactionを仕掛けられそう
- Organizers
- 複数のInteractorを呼べる
- context
- 使えそうな機能
class PlaceOrder
include Interactor::Organizer
organize BuildOrder, ChargeCard, SendThankYou
end
こういうの作ってみようと思う