Guest User

Untitled

a guest
Jul 16th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. defmodule Plans do
  2. alias Plans.Transactions
  3. alias LineItems
  4.  
  5. def change_plans(subscription, new_plan, user) do
  6. Sage.new()
  7. |> Sage.run(:validate, Transactions.authorize/2)
  8. |> Sage.run(:update_plan, Transactions.update_plan/2)
  9. |> Sage.run(:charge_plan, Transactions.charge/2, Transactions.refund/4)
  10. |> update_line_items(subscription, new_plan, user)
  11. end
  12.  
  13. defp update_line_items(sage, subscription, new_plan, user) do
  14. line_items = LineItems.fetch_new_line_items(subscription, new_plan)
  15.  
  16. sage = Enum.reduce(line_items, sage, fn line_item ->
  17. LineItems.Sagas.create_line_item(sage)
  18. end)
  19.  
  20. Enum.reduce(subscriptions.line_items, sage, fn line_item ->
  21. LineItems.Sagas.remove_line_item(line_item)
  22. end)
  23. end
  24. end
Add Comment
Please, Sign In to add comment