Current section
Files
Jump to
Current section
Files
lib/stripe_mock_web/controllers/customer_controller.ex
defmodule StripeMockWeb.CustomerController do
use StripeMockWeb, :controller
alias StripeMock.API
alias StripeMock.API.Customer
action_fallback StripeMockWeb.FallbackController
def index(conn, params) do
page = API.list_customers() |> paginate(params)
render(conn, "index.json", page: page)
end
def create(conn, customer_params) do
with {:ok, %Customer{} = customer} <- API.create_customer(customer_params) do
conn
|> put_status(:created)
|> put_resp_header("location", Routes.customer_path(conn, :show, customer))
|> render("show.json", customer: customer)
end
end
def show(conn, %{"id" => id}) do
customer = API.get_customer!(id)
render(conn, "show.json", customer: customer)
end
def update(conn, %{"id" => id} = customer_params) do
customer = API.get_customer!(id)
with {:ok, %Customer{} = customer} <- API.update_customer(customer, customer_params) do
render(conn, "show.json", customer: customer)
end
end
def delete(conn, %{"id" => id}) do
customer = API.get_customer!(id)
with {:ok, %Customer{}} <- API.delete_customer(customer) do
send_resp(conn, :no_content, "")
end
end
end