Current section
Files
Jump to
Current section
Files
lib/mix/tasks/kopokopo.test_payment.ex
defmodule Mix.Tasks.Kopokopo.TestPayment do
@moduledoc """
Sends a Kopo Kopo STK Push test prompt.
mix kopokopo.test_payment
mix kopokopo.test_payment 0740769596 10
"""
use Mix.Task
@shortdoc "Sends a Kopo Kopo STK Push test prompt"
@impl Mix.Task
def run(args) do
Mix.Task.run("app.start")
{phone, amount} =
case args do
[] -> {"0740769596", "1"}
[phone] -> {phone, "1"}
[phone, amount | _] -> {phone, amount}
end
Mix.shell().info("Sending Kopo Kopo STK Push test prompt to #{phone} for KES #{amount}...")
case KopoKopo.test_prompt(phone, amount) do
{:ok, %{location: location, reference: reference}} ->
Mix.shell().info("Prompt sent.")
Mix.shell().info("Reference: #{reference}")
Mix.shell().info("Status URL: #{location}")
{:error, reason} ->
Mix.raise("Kopo Kopo test prompt failed: #{inspect(reason)}")
end
end
end