@@ -4,8 +4,11 @@ defmodule GroupherServer.Billing.Delegate.Actions do
44 """
55 import Helper.Utils , only: [ get_config: 2 ]
66
7+ alias Helper.ORM
8+
79 alias GroupherServer.Accounts
810 alias GroupherServer.Billing.BillRecord
11+ alias GroupherServer.Email
912
1013 alias Accounts.User
1114
@@ -15,29 +18,39 @@ defmodule GroupherServer.Billing.Delegate.Actions do
1518 plan = if amount >= @ senior_amount_threshold , do: :senior , else: :donate
1619
1720 with { :ok , _ } <- Accounts . upgrade_by_plan ( % User { id: record . user_id } , plan ) do
21+ send_thanks_email ( record )
1822 { :ok , record }
1923 end
2024 end
2125
2226 def after_bill ( % BillRecord { payment_usage: "senior" } = record , :done ) do
2327 with { :ok , _ } <- Accounts . upgrade_by_plan ( % User { id: record . user_id } , :senior ) do
28+ send_thanks_email ( record )
2429 { :ok , record }
2530 end
2631 end
2732
2833 def after_bill ( % BillRecord { payment_usage: "girls_code_too_plan" } = record , :done ) do
2934 with { :ok , _ } <- Accounts . upgrade_by_plan ( % User { id: record . user_id } , :senior ) do
35+ send_thanks_email ( record )
3036 { :ok , record }
3137 end
3238 end
3339
3440 def after_bill ( % BillRecord { payment_usage: "sponsor" } = record , :done ) do
3541 with { :ok , _ } <- Accounts . upgrade_by_plan ( % User { id: record . user_id } , :sponsor ) do
42+ send_thanks_email ( record )
3643 { :ok , record }
3744 end
3845 end
3946
4047 def after_bill ( % BillRecord { payment_usage: _payment_usage } , _state ) do
4148 { :error , "mismatch action" }
4249 end
50+
51+ defp send_thanks_email ( % BillRecord { } = record ) do
52+ with { :ok , user } <- ORM . find ( User , record . user_id , preload: :achievement ) do
53+ Email . thanks_donation ( user , record )
54+ end
55+ end
4356end
0 commit comments