Skip to content

Commit e050108

Browse files
committed
set payout account type based on country
1 parent 17937d6 commit e050108

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

lib/algora/integrations/stripe/connect_countries.ex

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
defmodule Algora.Stripe.ConnectCountries do
22
@moduledoc false
33

4+
@spec list() :: [{String.t(), String.t()}]
45
def list,
56
do: [
67
{"Albania", "AL"},
@@ -27,7 +28,6 @@ defmodule Algora.Stripe.ConnectCountries do
2728
{"Cambodia", "KH"},
2829
{"Canada", "CA"},
2930
{"Chile", "CL"},
30-
{"China", "CN"},
3131
{"Colombia", "CO"},
3232
{"Costa Rica", "CR"},
3333
{"Croatia", "HR"},
@@ -126,5 +126,10 @@ defmodule Algora.Stripe.ConnectCountries do
126126
{"Vietnam", "VN"}
127127
]
128128

129+
@spec list_codes() :: [String.t()]
129130
def list_codes, do: Enum.map(list(), &elem(&1, 1))
131+
132+
@spec account_type(String.t()) :: :standard | :express
133+
def account_type("BR"), do: :standard
134+
def account_type(_), do: :express
130135
end

lib/algora/payments/payments.ex

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ defmodule Algora.Payments do
99
alias Algora.Payments.PaymentMethod
1010
alias Algora.Payments.Transaction
1111
alias Algora.Repo
12+
alias Algora.Stripe.ConnectCountries
1213
alias Algora.Util
1314

1415
require Logger
@@ -142,6 +143,8 @@ defmodule Algora.Payments do
142143
@spec create_account(user :: User.t(), attrs :: %{optional(atom()) => any()}) ::
143144
{:ok, Account.t()} | {:error, any()}
144145
def create_account(user, attrs) do
146+
attrs = Map.put(attrs, :type, ConnectCountries.account_type(attrs.country))
147+
145148
with {:ok, stripe_account} <- create_stripe_account(attrs) do
146149
attrs = %{
147150
provider: "stripe",

lib/algora_web/live/user/transactions_live.ex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,7 @@ defmodule AlgoraWeb.User.TransactionsLive do
6969
result =
7070
if is_nil(account) do
7171
Payments.create_account(socket.assigns.current_user, %{
72-
country: changeset.changes.country,
73-
type: "express"
72+
country: changeset.changes.country
7473
})
7574
else
7675
{:ok, account}

0 commit comments

Comments
 (0)