Rauversion
path = :os.cmd('echo $PATH')
System.put_env("PATH", "/usr/local/bin:#{path}")
defmodule R do
def recompile() do
Mix.Task.reenable("app.start")
Mix.Task.reenable("compile")
Mix.Task.reenable("compile.all")
compilers = Mix.compilers()
Enum.each(compilers, &Mix.Task.reenable("compile.#{&1}"))
Mix.Task.run("compile.all")
end
end
Reprocess Track
:os.cmd('echo $PATH')
# IO.inspect(:os.cmd('ffprobe -v'))
user = Rauversion.Accounts.get_user!(56)
track = Rauversion.Tracks.get_track!(89)
Rauversion.Tracks.reprocess_peaks(track)
Count Queries & Series
CountByDateQuery.top_listeners(user.id)
|> Enum.map(fn x -> %{count: x.count, user: x.user.username} end)
CountByDateQuery.top_countries(user.id)
CountByDateQuery.series_by_month(user.id) |> Rauversion.Repo.all()
Stripe account
client = Rauversion.Stripe.Client.new()
c = Rauversion.OauthCredentials.get_oauth_credential!(1)
Account
stripe_account = Rauversion.Stripe.Client.accounts(client, c.uid)
balance
Rauversion.Stripe.Client.balance(client, c.uid)
Add charge
https://stripe.com/docs/connect/destination-charges
IO.inspect(c.uid)
@doc """
Rauversion.Stripe.Client.payment_intent(
client,
%{
"amount" => 1000,
"currency" => "usd",
"automatic_payment_methods" => %{"enabled" => true},
"transfer_data" => %{
"amount" => "890",
"destination" => c.uid
}
}
)
"""
Session create
IO.inspect(c.uid)
Rauversion.Stripe.Client.create_session(
client,
c.uid,
%{
"line_items" => %{
"0" => %{
"quantity" => 10,
"price_data" => %{
"unit_amount" => 10000,
"currency" => "usd",
"product_data" => %{
"name" => "prod name",
"description" => "prod desc"
}
}
}
},
"payment_intent_data" => %{
"application_fee_amount" => 100
# "transfer_data"=> %{
# "destination"=> c.uid
# }
},
"mode" => "payment",
"success_url" => "https://aa.com/success_url",
"cancel_url" => "https://aa.com/cancel_url"
}
)
a =
[%{a: 1, b: 2}, %{a: 44, b: 42}]
|> Enum.with_index()
|> Enum.reduce(%{}, fn {x, i}, acc ->
acc |> Map.merge(%{"#{i}" => x})
end)
Balance Transactions
# Rauversion.Stripe.Client.balance_transactions(client, c.uid)
# Rauversion.Stripe.Client.list_charges(client, c.uid)
Events
alias Rauversion.Events
event = Events.get_event!(2)
Event Ticket Order
Referencias
Stripe test cards
> Visa 4242424242424242 3 dígitos aleatorios Cualquier fecha futura
event = event |> Rauversion.Repo.preload(:event_tickets)
# R.recompile()
Rauversion.PurchaseOrders.change_purchase_order(
%Rauversion.PurchaseOrders.PurchaseOrder{user_id: user.id},
%{
data: event.event_tickets |> Enum.map(fn x -> %{ticket_id: x.id, count: 10} end)
}
)
|> Ecto.Changeset.apply_changes()
Rauversion.EventTickets.get_event_ticket!(1)
import Ecto.Query, warn: false
alias Rauversion.Repo
Rauversion.Events.get_event!(2)
|> Ecto.assoc(:user)
|> Repo.one()
|> Ecto.assoc(:oauth_credentials)
|> Ecto.Query.where([c], c.provider == ^"stripe")
|> Repo.one()
Get Stripe payment session
session_id = "cs_test_b10J3S60VmGmNA2zXWpKRMIQb4SMj1wp04ReCAo6OsiyeU3Q8kdcOJpoqO"
order = Rauversion.PurchaseOrders.get_purchase_order_by_stripe_payment!(session_id)
from(a in Rauversion.Events.Event,
where: a.id == ^2,
join: t in Rauversion.EventTickets.EventTicket,
on: a.id == t.event_id,
join: pt in Rauversion.PurchasedTickets.PurchasedTicket,
on: t.id == pt.event_ticket_id,
# group_by: [pt.id],
limit: 10,
select: pt
# order_by: [desc: count(t.id)],
# preload: [
# :user
# ]
)
|> Repo.all()
|> Repo.preload([:user])
ticket process design
- choose tickets
- order created