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

Commit b1ec96a

Browse files
committed
chore: Merge branch 'dev'
2 parents e7a67b9 + 7ad22ac commit b1ec96a

File tree

30 files changed

+2021
-24
lines changed

30 files changed

+2021
-24
lines changed

config/config.exs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,15 @@ config :groupher_server, :customization,
6666

6767
config :groupher_server, GroupherServerWeb.Gettext, default_locale: "zh_CN", locales: ~w(en zh_CN)
6868

69+
# config email services
70+
config :groupher_server, :system_emails,
71+
support: "coderplanets <support@group.coderplanets.com>",
72+
admin: "mydearxym@qq.com"
73+
74+
config :groupher_server, GroupherServer.Mailer,
75+
adapter: Bamboo.MailgunAdapter,
76+
domain: "mailer.coderplanets.com"
77+
6978
import_config "#{Mix.env()}.exs"
7079

7180
if File.exists?("config/#{Mix.env()}.secret.exs") do

config/dev.exs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,6 @@ config :groupher_server, GroupherServer.Repo,
5454
config :groupher_server, :github_oauth,
5555
client_id: System.get_env("OAUTH_GITHUB_CLIENT_ID"),
5656
client_secret: System.get_env("OAUTH_GITHUB_CLIENT_SECRET")
57+
58+
# config email services
59+
config :groupher_server, GroupherServer.Mailer, api_key: System.get_env("MAILER_API_KEY")

config/mock.exs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,6 @@ config :groupher_server, GroupherServer.Repo,
1919
database: "groupher_server_mock",
2020
hostname: "localhost",
2121
pool_size: 10
22+
23+
# config email services
24+
config :groupher_server, GroupherServer.Mailer, adapter: Bamboo.LocalAdapter

config/prod.exs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,6 @@ config :sentry,
9595
env: "production"
9696
},
9797
included_environments: [:prod]
98+
99+
# config email services
100+
config :groupher_server, GroupherServer.Mailer, api_key: System.get_env("MAILER_API_KEY")

config/test.exs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,6 @@ config :groupher_server, GroupherServer.Repo,
2525
config :groupher_server, :github_oauth,
2626
client_id: "3b4281c5e54ffd801f85",
2727
client_secret: "51f04dd8239b27f00a39a647ef3704de4c5ddc26"
28+
29+
# config email services
30+
config :groupher_server, GroupherServer.Mailer, adapter: Bamboo.TestAdapter

cover/excoveralls.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

lib/groupher_server/accounts/delegates/profile.ex

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ defmodule GroupherServer.Accounts.Delegate.Profile do
1010
alias Helper.{Guardian, ORM, QueryBuilder, RadarSearch}
1111
alias GroupherServer.Accounts.{Achievement, GithubUser, User, Social}
1212
alias GroupherServer.{CMS, Repo}
13+
alias GroupherServer.Email
1314

1415
alias Ecto.Multi
1516

@@ -149,7 +150,16 @@ defmodule GroupherServer.Accounts.Delegate.Profile do
149150
|> register_github_result
150151
end
151152

152-
defp register_github_result({:ok, %{create_user: user}}), do: gen_token(user)
153+
defp register_github_result({:ok, %{create_user: create_user}}) do
154+
{:ok, user} = ORM.find(User, create_user.id, preload: :github_profile)
155+
156+
with {:ok, result} <- gen_token(user) do
157+
Email.welcome(user)
158+
Email.notify_admin(user, :new_register)
159+
160+
{:ok, result}
161+
end
162+
end
153163

154164
defp register_github_result({:error, :create_user, %Ecto.Changeset{} = result, _steps}),
155165
do: {:error, result}

lib/groupher_server/accounts/user.ex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ defmodule GroupherServer.Accounts.User do
6767

6868
has_many(:favorite_categories, {"favorite_categories", FavoriteCategory})
6969

70-
field(:sponsor_member, :boolean)
71-
field(:paid_member, :boolean)
72-
field(:platinum_member, :boolean)
70+
# field(:sponsor_member, :boolean)
71+
# field(:paid_member, :boolean)
72+
# field(:platinum_member, :boolean)
7373

7474
has_one(:customization, Customization)
7575
has_one(:purchase, Purchase)

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/billing/delegates/curd.ex

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ defmodule GroupherServer.Billing.Delegate.CURD do
1212
alias GroupherServer.Billing.BillRecord
1313
alias GroupherServer.Billing.Delegate.Actions
1414
alias GroupherServer.Repo
15+
alias GroupherServer.Email
1516

1617
alias Ecto.Multi
1718

@@ -87,6 +88,10 @@ defmodule GroupherServer.Billing.Delegate.CURD do
8788
|> Map.merge(~m(user_id hash_id state)a)
8889
|> map_atom_value(:string)
8990

90-
BillRecord |> ORM.create(attrs)
91+
with {:ok, record} <- ORM.create(BillRecord, attrs) do
92+
Email.notify_admin(record, :payment)
93+
94+
{:ok, record}
95+
end
9196
end
9297
end

0 commit comments

Comments
 (0)