Skip to content
This repository was archived by the owner on Nov 8, 2022. It is now read-only.

Commit cae8898

Browse files
committed
refactor(email): add support for dear donator
1 parent 6567e40 commit cae8898

File tree

4 files changed

+195
-1
lines changed

4 files changed

+195
-1
lines changed

lib/groupher_server/billing/delegates/actions.ex

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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
4356
end

lib/groupher_server/mailer/email.ex

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,17 @@ defmodule GroupherServer.Email do
3030
{:ok, :pass}
3131
end
3232

33+
def thanks_donation(%User{email: email} = user, %BillRecord{} = record) do
34+
# IO.inspect(email, label: "thanks_donation")
35+
36+
base_mail()
37+
|> to(email)
38+
|> subject("感谢你的打赏")
39+
|> html_body(Templates.ThanksDonation.html(user, record))
40+
|> text_body(Templates.ThanksDonation.text())
41+
|> Mailer.deliver_later()
42+
end
43+
3344
def notify_admin(%User{from_github: true} = user, :new_register) do
3445
base_mail()
3546
|> to(@admin_email)

0 commit comments

Comments
 (0)