Packages

StripeMock is a Stripe mock server written with Elixir and Phoenix.

Current section

Files

Jump to
stripe_mock lib stripe_mock_web controllers refund_controller.ex
Raw

lib/stripe_mock_web/controllers/refund_controller.ex

defmodule StripeMockWeb.RefundController do
use StripeMockWeb, :controller
alias StripeMock.API
alias StripeMock.API.Refund
plug SMPlug.ConvertParams, %{"charge" => "charge_id"} when action in [:create, :update]
action_fallback StripeMockWeb.FallbackController
def index(conn, params) do
page = API.list_refunds() |> paginate(params)
render(conn, "index.json", page: page)
end
def create(conn, refund_params) do
with {:ok, %Refund{} = refund} <- API.create_refund(refund_params) do
conn
|> put_status(:created)
|> put_resp_header("location", Routes.refund_path(conn, :show, refund))
|> render("show.json", refund: refund)
end
end
def show(conn, %{"id" => id}) do
with {:ok, refund} <- API.get_refund(id) do
render(conn, "show.json", refund: refund)
end
end
def update(conn, %{"id" => id} = refund_params) do
with {:ok, refund} <- API.get_refund(id),
{:ok, %Refund{} = refund} <- API.update_refund(refund, refund_params) do
render(conn, "show.json", refund: refund)
end
end
end