mirror of
https://github.com/plausible/analytics.git
synced 2024-10-26 18:32:25 +03:00
Add last_bill_date to new subscriptions (#3588)
* Add last_bill_date to new subscriptions * Remove leftover test code Co-authored-by: RobertJoonas <56999674+RobertJoonas@users.noreply.github.com> --------- Co-authored-by: RobertJoonas <56999674+RobertJoonas@users.noreply.github.com>
This commit is contained in:
parent
44d71c8c0e
commit
032823e112
@ -139,8 +139,10 @@ defmodule Plausible.Billing do
|
||||
Map.put(params, "passthrough", user && user.id)
|
||||
end
|
||||
|
||||
subscription_params = format_subscription(params) |> add_last_bill_date(params)
|
||||
|
||||
%Subscription{}
|
||||
|> Subscription.changeset(format_subscription(params))
|
||||
|> Subscription.changeset(subscription_params)
|
||||
|> Repo.insert!()
|
||||
|> after_subscription_update()
|
||||
end
|
||||
@ -212,6 +214,16 @@ defmodule Plausible.Billing do
|
||||
}
|
||||
end
|
||||
|
||||
defp add_last_bill_date(subscription_params, paddle_params) do
|
||||
with datetime_str when is_binary(datetime_str) <- paddle_params["event_time"],
|
||||
{:ok, datetime} <- NaiveDateTime.from_iso8601(datetime_str),
|
||||
date <- NaiveDateTime.to_date(datetime) do
|
||||
Map.put(subscription_params, :last_bill_date, date)
|
||||
else
|
||||
_ -> subscription_params
|
||||
end
|
||||
end
|
||||
|
||||
defp present?(""), do: false
|
||||
defp present?(nil), do: false
|
||||
defp present?(_), do: true
|
||||
|
@ -116,6 +116,7 @@ defmodule Plausible.BillingTest do
|
||||
@plan_id_100k "654178"
|
||||
|
||||
@subscription_created_params %{
|
||||
"event_time" => "2019-05-01 01:03:52",
|
||||
"alert_name" => "subscription_created",
|
||||
"passthrough" => "",
|
||||
"email" => "",
|
||||
@ -153,6 +154,7 @@ defmodule Plausible.BillingTest do
|
||||
subscription = Repo.get_by(Plausible.Billing.Subscription, user_id: user.id)
|
||||
assert subscription.paddle_subscription_id == @subscription_id
|
||||
assert subscription.next_bill_date == ~D[2019-06-01]
|
||||
assert subscription.last_bill_date == ~D[2019-05-01]
|
||||
assert subscription.next_bill_amount == "6.00"
|
||||
assert subscription.currency_code == "EUR"
|
||||
end
|
||||
@ -166,6 +168,7 @@ defmodule Plausible.BillingTest do
|
||||
subscription = Repo.get_by(Plausible.Billing.Subscription, user_id: user.id)
|
||||
assert subscription.paddle_subscription_id == @subscription_id
|
||||
assert subscription.next_bill_date == ~D[2019-06-01]
|
||||
assert subscription.last_bill_date == ~D[2019-05-01]
|
||||
assert subscription.next_bill_amount == "6.00"
|
||||
end
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user