File size: 613 Bytes
3e21b19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
defmodule Mix.Tasks.CreateFreeSubscription do
  @moduledoc false

  use Mix.Task
  use Plausible.Repo

  alias Plausible.Billing.Subscription

  # coveralls-ignore-start

  def run([user_id]) do
    Application.ensure_all_started(:plausible)
    execute(user_id)
  end

  def run(_), do: IO.puts("Usage - mix create_free_subscription <user_id>")

  def execute(user_id) do
    user = Repo.get(Plausible.Auth.User, user_id)
    {:ok, team} = Plausible.Teams.get_or_create(user)

    team
    |> Subscription.free()
    |> Repo.insert!()

    IO.puts("Created a free subscription for user: #{user.name}")
  end
end